Complete moving login to the client side.

Client now has at least two super context: Login & App (Admin, …, );
Note that Login and App can both have sub contexts (such as Admin in
App, TBI… currently it is just Login and Admin...)
Fixed url redirection problem: when a url points to some module that's
not under Login context, the default login module (account) atm is
going to be shown, after a successful sign-in ajax call, the uri
fragment will go back to pre-sign-in state, in order to do this, we
need to switch the uri fragment to # after caching the intended uri
fragment. So that app.router.navigate() can work as expected. Coz
otherwise the Backbone.history page won't change thus a navigation
(loadUrl(#fragment)) will not occure.