ENH: added support for data column queries
- can construct searches on the actual columns of the data, by passing keyword `data_columns` to `append`
  e.g. store.select('df_dc',[ Term('B>0'), Term('string=foo') ]) 
         (where B and string are columns in the frame)
- added `nan_rep` for supporting string columns with nan's in them
- corectly determine dtypes of data columns that we cannot deal with (date,unicode), raise UnImplementedError
- added support for datetime64 in columns
- added method `unique` to fast retrieval of indexables or data columns
- added keyword `index=True` to automagically create indicies on all indexables and data columns!
- performance enhancements on string columns
- added `chunksize` parameter to append to allow write chunking, significantly lower memory usage on writes
- added `expectedrows` parameter to append to allow specification of the TOTAL expected rows in a table (to optimize performance)
- added `start/stop` parameters to select to allow limiting of the selection space
- added multi-index dataframe support (closes GH #1277 )
- added `append_to_multple`, `select_as_multiple` and `select_as_coordinates` methods to support multiple-table creation & selection
- removed compression kw from put, replaced with complib (to make more consistent across library)
- Term parsing a little more robust
- more tests & docs for data columns
- added whatsnew 0.10.1 docs
