Made the dropdown an MDL button fab with better positioning via
a p.lead so that it is more easily discoverable and obvious that
it is a button that can be pressed.
Fixes#6899
* WIP
* using bootswatch from npm instead of bootswatch CDN url
* feat: on-demand client css building for skins
* added ability for client-side to select a skin
* updated loading and saving logic of bootstrapSkin on client side user settings
* fix: broken test for #6849
* no-refresh login as well, plus lots of fixes for missing config on login
* replace config with new set on logout as well
* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook
* fixed issues with socket.io not properly representing uid on server
* some light refactoring and cleanup
* minor cleanup, fixed spa logout not working after login
* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately
* Dynamically replace chat and slideout menu on updateHeader()
... instead of just the menu items.
* more efficient calls to Benchpress and translator /cc @pitaj
* fix: chats and notification handlers not working after login
* fix: accidentally calling cb multiple times
- on category setParent dialog do not show children of current category
- break recursion if category parentCid is equal to child cid to prevent
infinite loop
- dont allow setting the parentCid of a category to one of it's children