(Devel) refactoring of playbooks pushed for 0.5

I've pushed some code improvements.

This is not to say we're done with this, but it is probably good enough to start accepting patches to the codebase again. It makes playbook code *much*
easier to understand, and also improves runner a decent amount.

* there are now more sub packages -- inventory, runner, and playbook code has been separated. For those not familiar with __init__.py in python, it's not just used for making a package directory, in all examples, there is meaningful code in __init__.py now. The majority of the old runner.py, inventory.py, and playbook.py are in __init__.py files.
* In inventory, various files are renamed.
* Inside of runner, there's a ReturnData object that is used to keep the code from passing so many tuples around in ways that were hard to keep track of.
* In playbook, the main playbook code still runs the play, though plays and tasks are distinct objects and largely self-parsing, so it's easier to understand the playbook/runner handoff.

Unit tests still pass, as well as a pretty large battery of manual testing including:
- vars
- vars_files
- vars_files with a list (first file found gets loaded)
- includes of tasks
- includes of handlers
- with_items

I'd still encourage everyone to pound on things, there may be some bugs I didn't catch. There are still open tickets for upgrading error handling, etc, various other RFEs, which I still intend to do … so I'm most concerned with just testing parity with the way things work now.

--Michael