Create Dashboards plugin to show dashboard boxes.

If Dashboard plugin is not enabled, fallback to ExtensionsDashboards
Add a setupAdminDashboard event
Render dashboard boxes into two columns and a full width column
Trigger event before and after dashboard box render
Add dashboard table to save custom user dashboards
Show some feedback on collapsing a dashboard box
Allow custom sorting of dashboard boxes
Save dashboard box location to database
Load up saved dashboard positions + constant for each column
Some pretty styling when dragging boxes around
Add an example dashboard block.
Remove deprecated Settings::admin_dashboard()
Add Blog feed dashboard widget
Merge branch 'dashboard' into 2.2

* dashboard:
  Add Blog feed dashboard widget
  Remove deprecated Settings::admin_dashboard()
  Add an example dashboard block.
  Some pretty styling when dragging boxes around
  Load up saved dashboard positions + constant for each column
  Save dashboard box location to database
  Allow custom sorting of dashboard boxes
  Show some feedback on collapsing a dashboard box
  Add dashboard table to save custom user dashboards
  Trigger event before and after dashboard box render
  Render dashboard boxes into two columns and a full width column
  Add a setupAdminDashboard event
  Create Dashboards plugin to show dashboard boxes.

Closes #547
Closes #240
Make DashboardHelper a bit more configurable
Convert dashboard alias using dots with dashes

Using dots in an identifier is common in config files.
By converting it as `-`, it enables using the dashboard
alias as jquery selector.
Do not assume that saveDashboard is called via jquery-ui sortables

Custom themes may provide its own dashboard ui handling callbacks.
So, just do our primary task, ie save the dashboard info and
simply return when the ui argument is missing.
Do not initialize Dashboards when including admin.js

For the same reason as previous commit, themes may want to use their
own custom initializers
Remove Dashboard.debounce() since we can use _.debounce()
Don't initialize Admin when including admin.js

- Themes should initialize Admin themselves

  It should then decide for themselves whether they need to reuse the
  default behavior by calling the default initializers themselves.

- Refactor slide toggle initializer out of Admin.extra()

  The box slide toggle initializer is very similar to the dashboard box
  handling code. It potentially causes event handling conflicts for custom
  admin themes. Thus, move it out from Admin.extra().