Changed dashboard to a factory & only placed an instance in scope.

Note that I'm currently still working through the entire impact of
this change, because currently, a lot of things are changing.

Starting at the start, I changed dashboard from a service to a factory
and I moved all of the loading code to the dashboard provider. This
means that the dashboard provider now loads the dashboard from a source
deduced from the routeParams and places it into a scope very high in the
scope tree.

This resulted in a lot of simple changes where I had to replace a ton of
dashboard.current references with just dashboard, but it had some deeper
impacts: The dashboards are loaded asynchronously now, so we have to be
careful when referencing the dashboard, especially during startup.
In practice, this means I had to move quite a bit of setup logic into
event handlers for the dashboard-loaded event, because the dashboard
simply doesn't exist if this event isn't fired yet.