Allow the use of buffers and None in to_hdf and read_hdf.
This patch basically enables the expression

```
 pd.read_hdf(BytesIO(df.to_hdf(key="/data")), key="/data") == df
```

This would need extensive testing, as in-memory stores are not supported on older versions of  PyTables, nor under some versions of the underyling library.

Furthermore they are quite a bit slower than just keeping the data in actual memory.

So I think a cookbook entry of how to do this would be fine. But I don't think this should be in the main code.

Pls submit a doc PR if you'd like.

thanks
 This is not intended for in-memory stores (that's why I did not implement it inside of `HDFStore`) but for sending HDF data over the wire.
 hmm
for what purpose?

unlike other protocols (json,csv) partial results are completely useless
 Maybe, but doing a `socket.send(df.to_hdf(key="/data"))` and `pd.read_hdf(socket, key="/data")` is quite performant in my experience (feel free to show me an alternative) as it doesn't require (too much) parsing on the reading end and allows for exact replication of the transferred frame.
 try using msgpack

I'll have a look at this again
 this would need some tests

and I don't think would work the way you have it

eg if append=True this will fail
 It does work for what I do (I'm using this in production ;)), i.e. sending dataframes around in a local network. I'll have a look into msgpack, but IIRC the documentation clearly stated that the support was experimental.
 msgpack is experimental just because it's new
haven't gotten much feedback on it
this would need some tests 
if u want to see this included
 @filmor this needs some tests. going to close for now. pls reopen when you have time to add some.
