Only define functions if they have not been defined before, e.g. in themes. This makes it possible to override parts of a module and still use the other functions.
1. Add template category 'end' that places content right before final </body> tag
2. Move most Javascript from tpl files into one cacheable file, theme.js
3. Load scripts at end of the HTML document instead of in the header
4. Minify several Javascript files
Note that the second and third things were only done for Frost and Frost Mobile. Doing it for every theme means going through every .tpl for every theme and rearranging the Javascript, which is tedious.