Added unicode and string support

This never got implemented somehow, but is now. Unicode support
requires some special considerations, but is working at least for
my simple unit test.
Added support for arbitrary objects via pickling

Will now dump and load arbitrary python objects. This functionality
is more for convenience than anything else. Note that pickle is known
to be insecure, in the sense that you can pickle anything, including
malicious code. For this reason, I've added safe=True to the
load() function, and if there's a pickled object stored in the HDF5
file it will only be loaded if the user manually sets safe=False.
This seems like a sane compromise between convenience and security,
(although I'm sure some would disagree).