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
Yeah I added this before I realised I needed a context to make the test pass without major changes. Doesn't make sense currently. I'll remove it.