Ensure the working dirs exist on Travis/self tests

Rather than create them for Travis in the Ansible DSL file, it's best
to take care of ensuring that they exist as early as possible.
Change the self test runtime path

Instead of just dumping files into /tmp, it's more clean to name space
the test files into /tmp/rolespec/*
Do not create test self working dirs in the script

Instead of polluting the main script with test code it makes more sense
to set this up in the test code itself.

It does mean we'll have minor duplication in the test code but overall
it's worth doing.
Add a basic test harness to test RoleSpec itself

This patch sets up the plumbing to create a test role and test script.

Future additions will test each assertion available in the DSL as well
as the other components of RoleSpec.
Test system actions
Test ansible actions and assertions
Document install_ansible
Test the system actions with monit instead of ed

This sets the stage to be able to test assert_monitoring
Add start() system action

It may be useful to be able to start processes on demand
in the tests.
Add a globals header comment
Add a proper test setup/teardown

Installing things like monit to test assert_monitoring should
happen outside of the test script.

Things like starting a simple HTTP server should as well.
Use the 'ed' package to test install/purge
Add tests for all basic assertions

This tests every single assertion as well as their negated matches.
Remove the ferm dependency on assert_iptables_allow

Rather than use ferm to check the current rules just make a call
directly to iptables --list instead.
Guard against Travis setting certain ENV variables

We don't want anything that's remote to kick off during the tests
so to be safe we'll set them to empty strings.
Add Travis-CI badge
Bump version number to 0.3
Merge branch 'release-0.3' into develop