Enable YAML data as playbook, and ensure that modules use #!/usr/bin/env python as hashbang

This is really two things rolled into a single pull request so feel free to reject it on that basis alone.

The first thing is allowing YAML data to be passed into playbook.Playbook() in addition to a file name.  this is handy for us in the tool we are building, it saves us, I think, from having to go all the way down to the Runner API to run play books programmatically.

The second thing is something that was discovered while trying to run Ansible inside a python Virtual Env-- the  use of   hardcoded /usr/bin/python path in the hash bang of module files was causing problems with some modules that rely on third-party libs (in our case it was boto-- installed in venv,  but not system-wide).