Allow for a yml string to be passed to PlayBook

Added a playbook_yaml param to PlayBook that accepts a string containing yaml to use
as a playbook. This is much cleaner than writing a generated yaml to a file and then
loading it immediately when passing the file to the playbook.

This is useful when generating a yaml during runtime and then passing it directly to PlayBook.