Make "{...}" syntax parse to struct, add "c{...}" syntax for cstruct
Rename fixed_dim type to cfixed_dim

This is a change to make the dynd type system better match datashape.
In datashape, "N * int32" is syntactic sugar for "fixed[N] * int32",
but the previous dynd fixed_dim type doesn't quite match because it
also locks down the stride. To make this match, we rename fixed_dim
to cfixed_dim, following the struct/cstruct idea, then create a new
fixed_dim type which does not lock down the stride.
Add ctuple type, make tuple type have variable layout, add parsing
Add ndt::type::tcast<>() function to make type *_type static casts nicer
Add a fixed[N] dimension type which corresponds better to datashape's
Add function to ndt::type for handling strided dims
Add a CRTP assignment_ck ckernel class that simplifies ckernel creation

Conflicts:
	include/dynd/kernels/assignment_kernels.hpp
Add a ckernel which assigns a constant value, ignoring the src data
Make the datashape parse parse # as fixed_dim, get tests to work

This makes datashapes like "3 * strided * int32" possible, because
the fixed_dim doesn't require a locked down memory layout like
cfixed_dim does.
Fixes for issues exposed from the blaze tests
Convert the var dim assignment ckernels to the CRTP method
Add class arrmeta_holder for helping manage type+array metadata

This is for contexts where one doesn't want the overhead
of allocating a full-blown reference counted nd::array, e.g.
inside a ckernel.
Merge pull request #30 from mwiebe/type_tweaks

Type tweaks