RFC: Convert double

Addresses #988 and converts the library to double precision internally. Note that this is for position, orientation and animation only and does not affect geometry data. This was done because that data is loaded as a single precision float, sent to the GPU as single precision and is rarely involved in calculations. For more information on the merits of this switch, please see issue #988.

Currently the following examples are broken:

- [x] Uniform distribution (the red path)
- [x] MD5 animation
- [x] MD5 blending

When merging this, there is a corresponding pull request in the examples app at MasDennis/RajawaliExamples#29.

## Benchmarks

Nexus 4:

Double Precision:
 - 2000 Textured Planes: `~58FPS`
 - Terrain:                       `~60FPS`
 - Using Geometry Data:  `~38-58FPS` <--Varied a lot from frame to frame

Single Precision:
 - 2000 Textured Planes: `~58FPS`
 - Terrain:                       `~59FPS`
 - Using Geometry Data:  `~38-60FPS` <--Varied a lot from frame to frame but less than double precision and spends more time at higher frame rates.