New Plugin Helper

Added a Plugin Helper which has `noparse()` to convert {{ }} to
entities to prevent parsing, and added `strtobool()` which will convert
the common LEX bools (yes, y, no, n, true, false, 0, 1) to real bools.

Usage:
```
$parse = strtobool( $this->attribute('noparse', true) ); // converts to
a real bool

if ($parse) {
	$code = noparse($code); // converts {{ }} to prevent now and all
future parsing
}
```
Renamed Plugin_helper functions to match code style
Fixed url_title() to use the foreign_characters array from the PyroCMS configuration instead of its own array of characters.
Also merged the two arrays providing Cyrillic character support to the convert_accented_characters() as well.

Signed-off-by: George Petsagourakis <petsagouris@gmail.com>
Fixed the Module_import::__construct() so that it writes the empty index.html to the places it didn't but should have.
Fixed some PHPDoc comments.
Applied PyroCMS coding standards to the entire Module_import.php file.
New Admin Menu System

This commit removes the admin menu logic from the theme.php file and moves it into the Admin core controller. The admin menu is a core logic that should be present and consistent regardless of the admin theme.

This also includes a new way for modules to affect the menu. Since the menu is just an array, it can be manipulated with a function in the module's details.php file, or through an event. The order of items in the menu can also be manipulated.
Merge branch '2.2/adminmenu' of github.com:pyrocms/pyrocms into 2.2/develop

Conflicts:
	system/cms/themes/pyrocms/views/admin/partials/navigation.php
Merge pull request #2043 from petsagouris/bugfix/module_import_write_indexhtml

[2.2/develop] Fixed the Module_import::__construct() so that it writes the empty index.html
Merge pull request #2023 from chadwithuhc/feature/plugin-helper

New Plugin Helper
Adding in support for making single admin menu items the top link.

This functionality hadn't been transferred over from the previous admin menu system.
Merge branch '2.2/develop' of github.com:pyrocms/pyrocms into 2.2/develop
Merge pull request #2042 from petsagouris/enhancement/url_title_foreign_characters

[2.2/develop] Fixed url_title() to use the foreign_characters array from the PyroCMS configuration.
Merge branch '2.2/develop' of github.com:pyrocms/pyrocms into 2.2/develop
Creating a plugins add-on section.

This doesn't have any functionality (although we could add the ability to upload plugins), but it does give the ability to check at a glance what plugins are currently available to use. Also introducing name, description, and version variables.
Adding var check to Plugin class.

This was giving errors when trying to use the Plugin class in a controller. Now checks to see if a var is set for error suppression.
Decoupling settings from the settings module.

See #1122

Signed-off-by: George Petsagourakis <petsagouris@gmail.com>
Merge pull request #2044 from petsagouris/enhancement/decouple_addon_settings

[2.2/develop] Decoupling settings from the settings module.
Merge branch '2.2/develop' of https://github.com/pyrocms/pyrocms into feature/newtheme

Conflicts:
	system/cms/themes/pyrocms/views/admin/partials/navigation.php

Signed-off-by: Joshua Pekera <joshuapekera@me.com>