Adding a command line builder for plugins using external commands

Plugins that run an external command on python files can now be constructed using a fluent interface.
This has been used to remove boilerplate from the flake8 plugin.