added Transaction class to encapsulate db transactions.  changed SleuthkitCase's methods relating to adding files and directories  to use the Transactions rather than having each method manage the database lock and autocommit settings.  to preserve the old interface,  for methods that take a transaction parameter, i added wrapper methods  that don't take a transaction but instead create one locally and use the new transaction based methods.
Merge branch 'logical_file_transactions' of https://github.com/millmanorama/sleuthkit into logical_file_transactions