[FEATURE] Deferred menu rendering ViewHelper

This adds attribute "deferred" (boolean) to ever menu-type ViewHelper. If set to TRUE, the menu then requires an instance of v:page.menu.deferred to be used inside the actual menu tag. This sub-ViewHelper then outputs the actual menu as rendered by the parent instance (which means you can now both rely on automatic rendering AND perform checks on the menu array which before, you would not be able to do unless performing manual menu rendering).
[TASK] Use a condition to avoid removal of non-existing variable
[BUGFIX] Use two-pass handling of deferred menu rendering
[TASK] Rationalise menu rendering process
[TASK] Clean up renderContent method on Abstract Menu ViewHelper
[TASK] Further clean up renderContent method on Menu ViewHelpers
[TASK] Clear deferred rendering storage in deferred VH instead of parent
[TASK] Move deferred menu storage clearing to dedicated method
[TASK] Add early return when menu array is empty
Merge pull request #173 from NamelessCoder/deferredmenu

[FEATURE] Deferred menu rendering ViewHelper