Changelog:
* Map & Tuple now preserve item type information
* einsum now supports elided dimensions (e.g. `einsum("...ij,...jk->...ik", ...)`)
* tc.ml.conv now supports evaluating a 1D or 2D convolution
* Number & Tensor now support trigonometric operations
* New linear algebra functions: `diagonal`, `identity`, `set_diagonal`, QR decomposition, Householder reflection
* New semantic version type `Version`
* Tensor now supports `concatenate`, `flip`, and `reshape`
* Improved Docker support
* Graph is now a subclass of Map rather than Cluster
* Tuple.fold method signature now matches Stream.fold