Added gradle wrapper (2.0 version), and updated build.gradle.  Also improved interfaces/javadocs, and added unit tests