Initial version for code review

Because the initial development was occurring on master, there isn't an easy way to do code review. This pull exists solely as a means to code review the entire project. Any changes will be put straight into master and this pull will be closed and the `initial-code-review` branch deleted. All future development will use pull requests into master to facilitate code review.
That's an interesting example. I think that the current behavior is fine because a side effect of `Hierarchy::get()` is setting it on any backends that don't have it. Otherwise this class wouldn't be very useful because the user would have to manage setting retrieved values on all of the backends that don't already have it.