Extract compilation functionality in order to prepare for the Java 8 Nashorn engine

Hi,

I'm planning on extending this engine by making use of the newly released Java 8 Nashorn JS engine which is supposedly a lot quicker than Rhino. I haven't actually gotten round to using it yet but this PR extracts a `LessCompiler` interface and adds a single implementation called `RhinoCompiler`.

In the future I would like to add a `NashornCompiler` implementation too. This PR is just a friendly call for discussion on whether such an implementation would actually be merged by you.

I also took the liberty to add a `travis.yml` which runs the tests on on Java 7 & 8.

Thanks for this library,
Leonard