Make Lemur suitable as a library

Guided by https://github.com/TheClimateCorporation/lemur/issues/23 I've continued the work of @jimdowning.

The code should be suitable now to use a library, although it is a bit ugly still due to the use of one dynamic var. This was the easiest option for now. I hope to do some more iterations later on. I say "should" because I still need to test it from a project. The tests I could run without the need for AWS access were succeeding, but not sure about the others.

For short-term future work I see the following:
* Have library functions that take the context as an argument
* Move dsl functions in `lemure.core` to a separate namespace

Happy to hear your first feedback on these changes
This never happens, right?  Because of line 88.  Seems like a pointless test.  Especially because it's not done everywhere.  For example, line 276 doesn't use it:

  "(select-keys @*context* [:command :jobdef-path :remaining])"