Enhancement: Shell Cache

- Refactor: Moved some functionality from the Manager Serialization Test to the client_base so that we can use it for other tests, namely testing the shell cache which deals with serialization
- Enhancement: Added functionality to cache the Manager and Vault to disk
  - This is mainly for use between command-line instantiations so the user does not have to remember everything or be concerned with input/output functionality
  - Added appropriate testing
should we return a manager instance here? or is it a TODO