Enhancement api vault

- Refactor to use a Vault object
- Refactor to use a Project object that simply contains Vaults
B/c they are not modifying anything specific to the instance or class, and they're just convenience for updating or returning a value in the object if the object is in use.

These are in part helpers to get through the refactor; unless there is a compelling reason to maintain accepting just a the "raw" values then they will likely go away and programmers forced to create the object first.