Storage manager

All changes together, including the new storage manager.  Only the last commit adds in the storage manager.  The rest are in other pull requests.