Implement deep Hash and Array merges

This depends on #11. The following PR will use `JoinerImpl.deep_merge` to promote `private:` data (when generating the internal site).

@kaitlin: It looks like @afeld is offline or otherwise occupied today. Would you be willing to go ahead and merge this series of PRs (pending your approval, of course), or is there someone else you'd nominate?