Worked on numpy compatibility.

The nDim properties were changed to ndim as used in numpy.
The signal class now has the property size which returns the length of
the 1D data.

The signalGroup class now has ndim, shape and size. shape returns the
total shape of the signal group and size returns the total number of
data points.

signalGroup.__getitem__ has been implemented. The signal corresponding
to the given index is returned as a signal object.

Example:

sf = dd.shotfile('CEC', 29708)
Te = sf('Trad-A', tBegin=1.5, tEnd=1.6)
TeChannel0 = Te[0]

TeChannel0 is a signal object containing the time trace corresponding to
index 0.

If the signalGroup is not time dependent than the signal object will
have no timebase and the signal object will contain only the data.