Fix version so it can parse versions like "2.10.4-RC1".
- Extend Version to understand the concept of an "annotation" which is anything past the last period in a version number
Make engine Observable (RxJava compatibility).
- Add RxJava dependency
- Add CompileListener
- Move strings used in tests to source files
- Add utilities for accessing embedded resources
- Misc. cleanup