redid the whole code base

- Switched actions with a class called Plug (borrowed from
Laravel\Events)
- Added a plugin manager (so there's 1 place where plugins can be
managed) with a config and database driver.
- Loading plugins is different (removed the need for init.php and placed
config.php values in a container), they're now defined in a file called
plugin.php (which is a class that extends Plugin) optionally a
config.php file can be shipped
- Redid the example plugin to showcase the change