Android native implementation

This involves a re-use of the layouts and view logic from the xamarin/android implementation, and additionally a re-write of the C# common code in Java. I've tried my best to keep this as similar as possible. The main differences are in the JSON parsing, which doesn't have nullable ints or Json.net parsing.