Add open/close methods to both ProvenanceInterface and ProvenanceStorageInterface
This allows to have an explicit mechanism to allocate/release resources when needed.
The necessary methods for the classes implementing these interfaces to be turned in contexts
managers are added as well (ie. __enter__/__exit__).