Array.__iter__ yields either scalars or arrays

Previously this yielded DataDescriptors

>>> list(array([1, 2, 3]))
[1, 2, 3]

>>> list(array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]]))

[array([1, 2, 3], dshape='3 * int32'),
 array([4, 5, 6], dshape='3 * int32'),
 array([7, 8, 9], dshape='3 * int32')]

This matches the API established by numpy
minor tweaks to csv ddesc
CSV_DDesc takes keyword inputs to specialize dialect

Usually we depend on the csv module to automatically detect/sniff the
format of the csv file (e.g. what delimiter and line separators are used)

We still do this but now we also allow users to override the
automatically detected settings with keyword inputs.

This required us to stop using the old-style classes in csv.dialect and
instead use dictionaries.  This is, I think, much cleaner, but is also
less standard (if csv.dialects are standard)
switch out function tests for unittest tests
more standard use of assertEqual in array tests
Update for dynd instantiate_func addition of ectx parameter
CSV_DDesc uses dialect when reading data

Fixes #216
Merge branch 'master' of github.com:ContinuumIO/blaze
Merge branch 'master' into array-iter
Merge pull request #212 from mrocklin/array-iter

Array.__iter__ yields either scalars or arrays
omit dialect keys that start with _

rather than that contain _
Merge pull request #214 from mrocklin/csv-tweaks

CSV_DDesc tweaks
Add year/month/day properties to blaze date arrays
Add a few more links to relevant resources
Update to reflect changes to ddesc
Use the changes from PR #212 to simplify the tests