Updated client to have default key_column arguments (for use in testing particularly, when raw_input() can't be used
Added data_util functions to help the user choose a key column, so that every btable has to have a key. If no data columns are eligible to be a table key, a new key is added to the table.
Update persistence_layer to accommodate a key column
Update test_engine to account for key column being inserted when btables are created.
Tweaked data_utils and engine to work with tests, particularly setting key_column=0 for the demo analyses
Updated tests to run with automatic key column insertion
Prepend key column to every SELECT/INFER query, and accommodate key column in creation of new btables with INTO
Adjust tests to work with 'key' as key column
Key works with simulate, freq/hist/summarize
Merge branch 'master' into key
SIMULATE with INTO clause works as long as user chooses to create a new key
Adjusted data_util functions to allow for key column in output from SELECT/INFER/SIMULATE with INTO clauses
Remove print statements originally inserted for debugging
Added auto-accept argument for creating a new column with an INTO clause
Added exceptions for trying to set a new key or change the key's type. It's easier to reload a table since a table can't have models yet if the schema is being changed. Eventually we can build in key-change support if necessary
Made summarize/freq/hist more robust, particularly accounting whether a key column is passed from select/infer/simulate
More thorough testing for summarize/hist/freq
Schema table returned from CREATE BTABLE is vertical, not horizontal, so much easier to read
Updated docs to include recent additions to key and ignore column behavior
more comments