Several changes based on #18

This pull request contains most of the changes of #18, but with more documentation and hopefully with a little less noise.

I also fixed 2 bugs regarding the virtual IO feature (963c1fa and 4e068f3, see also #19), I hope I didn't make it worse.

In addition to #18, I included following features:

* `available_formats()` and `available_subtypes()` (88ab0ef)
* allow string arguments for format/subtype/endian (c3d0df7)