Add a -recursiveMutableCopy method that returns a mutable copy with all child wrappers also mutable
Add tests for -recursiveMutableCopy method
Fix bug breaking mutable directory wrappers

The overridden constructor for mutable memory data sources wasn't being called because it had the wrong signature, so it was possible to construct a mutable data source backed by an immutable dictionary. Which doesn't actually make any sense whatsoever.
Merge branch 'refs/heads/feature/recursive-mutable-copy' into v0-develop