Adding a command line interface

Docs updated, PEP8 passing, initial signature done and working.

Issues as I see it:
- Will the *nix return codes work ok for the majority of CI systems? (Jenkins, Buildbot, Travis, etc)
- Could we do something better with the Validation errors? Return a list of errors? Return the yaml file with highlighted parts as to where the error is?
- Testing - any ideas on how best to test this?
I think this can be removed in favor of the `entry_points` comment I left on the main pull request.