Refactor test discovery & running

Refactor test suite to be organized after the code hierarchy in h5py, as opposed to the old functional approach.

Existing tests are included in "old".  New test are under "hl" for highlevel, "ll" for low-level.  The new organization strategy is intended to make it very clear where test code belongs, based on the position of the target code in h5py.  For example, "read" slicing is now tested at ``h5py.tests.hl.test_dataset_getitem``; testing of the property ``h5py.File.filename`` might be at ``h5py.tests.hl.test_file.TestFilename``.