Split off the view generation loops into function.
Sick of trying to make layers work.

- I shouldn't need that cleanup code if layers actually are layered and
  delayered symmetrically across different based trees, but the zope
  testrunner doesn't do that and assumes... I am done explain I've done
  this before.
Support for tracking of hidden views

- This is needed because we don't want to generate links to annotations
  that don't actually have a view, and this also paves the way to allow
  profiles specify a larger set of views that can be made optional by
  end users of that.
Download link alphabetical.