Plugins for playbooks

The 'remove cruft' PR should be merged before this one, and then I can merge master into this.

I will comment on individual lines in the diff instead of writing everything here, but essentially this provides a new command `tw classroom:configure 1` which will run the playbooks through PHP for all enabled plugins for the course. The new sample data file provides the correctly setup data. 

You can `tail -f controller/log/cli.log` to see what Ansible is doing.

The `ansible-playbook` command is run locally against the localhost - we must still add the ability to run against whatever $connection we have. I think we will still want to run it locally and simply pass an inventory file containing the domain of the remote server when we have SSH connections working nicely.

This obviously doesn't provide a front-end yet - it's just a basic architecture that we can build on and improve.

I have idea about how the Plugin classes will augment the environment and provide resources, too, but that isn't covered here.