Persistence API

Adding in initial persistence interface.  This is the higher-level API for these items, but it implicitly defines the API the lower-level "engines" must produce.


@ericolson-wf @tannermiller-wf @beaulyddon-wf @johnlockwood-wf