Heavy refactor: Split Plugins into Controllers/Inputs

That'll give us a new layer of abstraction, so we can add new controller
plugins to manage Heroku Addons

Config spec passing