js/history: no additional container at login

History tries to load additional URLs separated by #! on page load. This
makes no sense on login page. However we need to preserve them when logging
in.

refs #6935
LoginForm: add "redirect" POST field

Instead of blindly trusting the redirect parameter in the URL this
creates a hidden form field and explicitely set's the form action
to the current URL without the redirect parameter.

refs #6584
Web\Url: remove stripUrlFragment()

This function had an interesting history and seems to be a result of
missunderstanding of each others commits. Removed, as the fragment is
already there.

refs #6699
Web/Url: more intuitive separator usage

One might not expect to get a URL with params separated by &amp; while
this is the correct way of writing them to HTML attributes. So default
behaviour is right now that all functions return URL params separated
by &, but if you cast a URL (or it's params) to a string, &amp; will be
used.

Additionally there are toString functions allowing you to choose the
separator "manually".

refs #6699
Web\UrlParams: add() and set() should encode...

...while there is now a addEncoded function, mostly for internal use.

refs #6699
Url\Params: remove() should reindex on change

There was a small bug, fixed.

refs #6699
ActionController: JS should redirect to __SELF__...

...once you lost your session. That's the only way to do this in a
smooth way. When the server get's an unauthenticated request for a
single container, redirecting to auth/login?redir=<that-container>
was not what you expect.

Together with JS handling __SELF__ in redirection URLs this will
play fine.

refs #6935
js/loader: Handle __SELF__ in redirection URLs

That's one more step to smoothly handle #! URLs, especially when you
are not yet authenticated.

refs #6935
Menu: ignore special params when comparing URLs

This fixes issues on login with dashboard != dashboard?renderLayout
and similar

refs #6699
DocParser: remove explicit call to getRelativeUrl

As this URLs will get rendered we want them to be automatically casted
resulting in correct URLs with &amp;

refs #6699
layout/body: protect containers from renderLayout

IMO this should be stripped before, this is just an additional
security measure.

refs #6935
layout: add favicon

fixes #6956
AuthenticationController: handle redirect parameter

This is a form field instead of a get parameter right now.

fixes #6584