Cache results of linkStringToArray

Closes #350
Fix: Element display Roles uses incorrect class in its input
CroogoHtmlHelper: Configurable icon classes

This would make it easier when upgrading fontAwesome in the future
Since 'large' is already default, remove it from menu config
Merge branch '2.0-icons'

* 2.0-icons:
  Since 'large' is already default, remove it from menu config
  CroogoHtmlHelper: Configurable icon classes
admin.js: Extract Admin.navigation() method into a separate file

Admin themes might provide its own navigation handler.  Move it out
so we can still reuse admin.js.
Adapt helpers to include btn-default class

This will allow easier upgrade path in the future
Use CroogoHelper::adminScript()
acl_permissions.js: Split tabSwitcher into two methods
Extract pagination into an element
Move default setup to CroogoTheme and reorder key hierarchy in theme.json

Theme settings are now stored under a specific `settings` node.
Enable configuring FormHelper's inputDefaults from theme.json
Configurable css classes in theme.json

- Configurations are read during application startup and sent to view as
  $themeSettings
- When `inputDefaults.class` is not specified theme.json helper settings,
  FormHelper will reuse `settings.css.formInput`
- New helper method: LayoutHelper::cssClass() to retrieve configured values
Adapt helpers to use css class configured in theme.json
Remove hardcoded span10 classes from views
Remove inputDefaults() calls that are not necessary
Avoid hardcoding inputDefault class values
Remove hardcoded span6 for inputClass + re-layout
CSS: Replace hardcoded container class
CSS: Replace hardcoded row class