WIP: 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:

- [ ] Uniform distribution (the red path)
- [ ] Catmul-Rom path (the orientation arrow)
- [ ] MD5 animation
- [ ] MD5 blending
- [ ] FBX loading (the guitar is positioned wrong)

When merging this, there is a corresponding pull request in the examples app at MasDennis/RajawaliExamples#29.