ENH: add pandas.hdfstore suppport

```
In [3]: from into import *
In [4]: import pandas
In [5]: from pandas import DataFrame
In [6]: df = pandas.util.testing.makeMixedDataFrame()
In [7]: uri = 'foo.h5::data'

In [8]: into(uri,df)
Out[8]: 'foo.h5::data'

In [9]: into(uri,df)
Out[9]: 'foo.h5::data'

In [10]: into(DataFrame, uri)
Out[10]: 
   A  B     C          D
0  0  0  foo1 2009-01-01
1  1  1  foo2 2009-01-02
2  2  0  foo3 2009-01-05
3  3  1  foo4 2009-01-06
4  4  0  foo5 2009-01-07
0  0  0  foo1 2009-01-01
1  1  1  foo2 2009-01-02
2  2  0  foo3 2009-01-05
3  3  1  foo4 2009-01-06
4  4  0  foo5 2009-01-07

In [11]: into(DataFrame, uri, where='A>3')
Out[11]: 
   A  B     C          D
4  4  0  foo5 2009-01-07
4  4  0  foo5 2009-01-07

In [12]: into(DataFrame, uri, where='A>3', columns=['A','D'])
Out[12]: 
   A          D
4  4 2009-01-07
4  4 2009-01-07

In [13]: drop('foo.h5')
```
- Added into support to include chunking / column selection / reading and writing

the use of uri's in resource that need a hierarchical disambiguation
based on priority and the raising of ``NotImplementedError`` by matches
that do not wish to be a resource for that particular uri

IOW. a higher-priority uri matches (e.g. .h5), but the data is
actually PyTables, so HDFStore 'passes' on the processing. PyTables
is next in the chain so it will then process.

Note that a uri can be more fully-disambiguated via a head element
The default is ``hdfstore`` (this only matters for writing), reading
is unambiguous.

e.g.

```
....../file.h5 -> hdfstore
hdfstore://....../file.hdf5|h5 -> hdfstore
pytables://....../file.hdf5|h5 -> pytables
h5py://........../file.hdf5|h5 -> h5py
```
we're only concerned if the function that's yielding fails, which means you've successfully opened the file, if construction fails we should get an error message about that, not about something else