added optional unbounded hierarchy

available at `/<locale>/hierarchy` - though only if the
`performance.unbounded_hierarchy` instance setting is set to true
(while I'm not quite convinced that introducing a "performance" section
for this is desirable, it's the best I could come up with)

in the process, limited depth to a(n arbitrary) maximum of four levels
ensured permission and depth constraints are enforced

turns out an additional AuthZ check is *not* required since we're
already constraining the scope
ensured hierarchy's default root can be used even if not unbounded
Merge branch 'unbounded-hierarchy'