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?
And doing a bit more digging into the *correct* way to do this with `click`, It seems that click provides a custom exception that prints to stderr as well as exiting with a status of 1

http://click.pocoo.org/3/exceptions/