Cleanup and bug fixes in storage manager

- Fix bug when attempting to sync an empty queue
- Cleanup free segment logic when releasing cursor
- Delete data files that are not in our queue even on reopen
- Create lock file in data directory for basic safety
Add python bindings to persistent queue
Disable multithreaded persistence test

This test involves killing pthreads that are using the queue, then reopening the queue with
different threads.  It causes deadlocks sometimes, and it's not clear that this is a valid test case
that would pass even without a deadlock in the queue.
Remove all files in the queue directory when destroying the queue