Working on the initializer for the Source base class.

Added some more sub-classes of this (View, Cast).

Made Array class a simple wrapper around a Source object, to provide additional
attributes like shape and dtype.  Array objects will not be nested.  Instead,
they will always be light-weight wrappers around nested Source objects.
Started work on Array class (publicly accessible attributes with sanity checks).
Do away with Cast objects.  Instead, keep track of input dtypes within the operators
Factor out non-negative tuple sanity checks
Embellish the tuple sanity checks, and add a nested tuple sanity check.
Start work on Indices class initializer.

Also, minor bug fix in Array.shape setter.
Mixed up the input/output coefficients for Indices.  There are multiple inputs, only one output.
String representation for Indices