Initial functionality

- Adds two convenience functions for vault validation and cleanup that uses a manager object to track data throughout the process
- Provides a general structure for the project
- Achieves 100% test coverage on the structure

There is much left to do to complete this, but the basic structure and public interface should now be in place.
do we want to validate the manager too?