Support for multiple dashgroup groups and sourcing additional JavaScript dashboard files

* Allows multiple dashboard groups in the top menus for easier navigation
* Allows sourcing additional JavaScript files
* Maintains backwards compatibility with inline dashboards setup in dashboards.js
* Example demos.js for sourcing which includes content of original demos

I'm hoping to start creating Giraffe "plugins" that can manage their own JavaScript files and rather than try to support rewriting a single file, its easier if they can manage their own file for inclusion.