initialize matcher variables in call in the event they don't exist
use Hash#delete correctly
fix #1
rename the methods for load/unload/reload
rescue inside of plugin_already_loaded? if the plugin isn't loaded
rescue and log methods not defined in Sinatra when destroying the plugin methods on it
don't inject plugin routes if there aren't routes on the plugin