Fix #983 Assets::js() base_url issues

used change listed in the discussion for the issue.

Additionally, added a path() method similar to suggestion by @hArpanet
(also in the discussion for the issue), and modified most of the
path-building in the library to use the method.

Finally, some cleanup throughout the library and a fix for some odd
issues with script names getting mangled when removing the file
extension.
Fixes an issue with language fallback to English

Related to #956, if the language file was not found in the current
language, even if it loaded the fallback language, it would default to
show_error("Unable to load the requested language file: "), which made
it pretty pointless to load the fallback file in the first place.
Lang, Activities, Themes

- Additional language fixes (Loader, Modules)
- Clean up Activities module, remove most of the use of $this->db from
the controller, reduce calls to has_permission() by checking the most
common permissions in the controller's constructor, storing them in
controller properties, and passing the result to the views
- Setup themes to allow admin and default themes to share files, such as
the footer (Admin_Controller, themes). Set the default theme as the
fallback when setting the theme in Admin_Controller
Assets Library Changes

- Reduced the number of variables used to store directory names for the
library
- Added check for 'assets.directories' config item to set all
directories for the library at once (uses existing config items if not
found)
- trim slashes from the directories for consistent path handling
(assets_url() adds a trailing slash to its returned value)
- Use a single array to hold all of the scripts for the js methods (will
eventually do this for css methods as well, but the desired variable
name ($styles) is already in use by the css methods, so this will
require a more careful modification of the library)
- added setDebug() and setGlobals() methods, deprecated set_globals()
- added $cssMinify and $jsMinify closures to handle minifcation in a way
that will hopefully facilitate replacement of the methods, if needed
A little cleanup and additional commenting in the BF_Lang class.
Refactor the Base_Controller and Authenticated_Controller to allow for the BC to check if authentication is needed and then run the authentication process. This allows the user's chosen language to be used reliably throughout the application.

I believe this fixes the issues mentioned in #984 and #956, though it does display a few other places where the language support is lagging, like the menus....
Allow 'name' of the module in the module's config file to be localized by prefixing with 'lang:'. Will provide additional help with #984
Makes the CSRF bypass controllers list configurable and allows it to reference controllers within the main controllers folder. Fixes #967
Moving the CSRF settings to the primary index file so that they're available when the CSRF protection is actually ran. That's what I get for not testing that one before committing.
Fixes an error with the new loader and the template class that was only encountered while using the parse_views option. Fixes #969
Resurrecting the System Events documentation that got lost during the transition to the new docs system.
Translate Module Slow w/ large # of modules

- Assets::add_module_js() should only be called from the controller's
constructor
- Modules::files() was extremely slow when searching for language files
in all modules (especially when there are a large number of application
modules). This was caused by the function mapping the whole modules
directory (either application or bonfire) if the module was not found in
the current path. This should only be done if the $module_name is not
passed.
Roles/Permissions: Remove form_has_error()

- Remove form_has_error() calls from Roles and Permissions views
- Add some language entries for roles
- Performance boost on permission matrix for large sets of
roles/permissions by caching '*.Manage' permissions in the view
Fix lang() replacement in context menu
Merge pull request #1 from ci-bonfire/develop

sync
Language updates for menus.
Include ability to addattachements to emailer module
Additional Menu Language Fixes

- Localize menu_topic names (for example, Database Tools)
- Moved handling of display_name localization, so it may be applied to
sub-menus as well
Database Tools localization support

The config files might help...
Updated language support in menus

- Renamed all menu entries in the language file to use prefix bf_menu
- Moved all application_lang entries (in English file) that did not use
bf_ prefixes to the end of the file
- Added language entries for the remaining modules
- Updated views used for menus (emailer/database) to use lang values for
their menu entries