Site icons

* Introduces site()->getSiteIcons() that returns an array of icons that can be used in various contexts to render an icon suitable for display, prepopulated with defaults but overridable via event hooks.
* Introduces getIcon() on Page, which will return an icon for the current page context, overridable via icon event hook, or in code.
* Moves default icon/user icon favicon selection controller logic from favicon.tpl.php to Page::getIcon()
* Updates favicon.tpl.php, icons.tpl.php and the firefox manifest to use the new API

TODO: find a nicer way of populating defaults, perhaps via template... putting in links to graphics assets in code seems *wrong*, but couldn't think of a better way at the moment.