Fix issue with empty storages

Enumerating an empty storage previously raised an exception (NoneType
not iterable) as storages with no children didn't have their _children
attribute initialized properly
Fix #4

Switched implementation to mmap.  All underlying reads are mmap-based so
duplication of file pointers is gone and multiple threads can
simultaneously access the compound document.

Note that #1 is not fixed by this as we still read the entire FAT into
memory upon initial access.
Fix up test dependencies
Ditch pybuild

Turns out pybuild and dh-python just don't exist on Ubuntu 12.04 which
we need to support, so it's back to the old distutils way of doing
things...
Refactored into multiple modules

The package's module was over a thousand lines long ... time to do some
house-keeping and split things up
Fix handling of pure streams

Streams without valid file descriptors can still have a fileno method
which raises IOError when called. The CompoundFileReader initializer now
handles this case correctly
Start adding tests