Added simple method for plugins to add tags

They can just define them in an array and they’ll get applied. Before
being set they check that there hasn’t been user input which will
override it, which allows tags to be overridden without bypassing user
input.
Split out Testing Plugin, Added Directory Tags
Updated shebangs to more portable version
Updated config loading to prevent overwriting data

Basically when a new file containing config data is found it now gets
merged into data set by previous plugins instead of overwriting it.

Plugin loading order has also been corrected to make “parent” packages
sit higher in the plugin stack than their children.
Added "library" package and made it default.
Moved testing packages to testing plugin
Moved some basic tags to a "Meta" plugin

This plugin always gets called and is mainly a way to standardize how
arguments and tags are created for all tags, and to reduce the amount
of logic that happens in the controller.
Config Additions (Tag Access) and Composer Updates
Blocked some config values from being savable
Code Standards
Created PackageInfo and Plugin::getDescription

This allows us to pull metadata out for display.
Added "show" command
Code Standards
Merge pull request #9 from tedivm/template_diversification

Plugin Diversification