New features

Lots of new little features, cleaned up code and performance enhancements. The minimum Android api level has been raised to 16 which is basically Android device running 4.1.2+.