Unit tests for blaze.metadata package
Add blaze.test_utils.temp_dir(), a context manager that creates a
temporary directory and cleans it up when exiting the block.

Handy for writing unit tests that need to create files on disk. To
debug tests, set environment variable BLAZE_TEST_KEEP_TEMP to 1 and
the temporary directory paths will be printed to stderr and not be
deleted.
Unit tests for blaze.toplevel.open().  Don't pass yet.
Cleanup of blaze.toplevel.open().

Require a URI (rather than allowing uri=None implicitly).  Also fix
URI parsing to allow URI to specify on-disk relative and absolute
paths like:

  sqlite://foo.sqlite
  ctable:///tmp/mytable
  carray:///home/user/array
Give Table a datashape property to match Array and NDTable.
Merge pull request #35 from seibert/test_coverage

More unit tests