This array was of 32-bit values, but the entries were only ever
in the 0-255 range. Convert to uint8_t.
Testing performed: The result of the sum-of-sin was unchanged
>>> import math; sum(math.sin(2.**i) for i in range(21))
1.42069
This function computes the remainder of a value `x` modulo pi/2, to high
precision.
It does this by dividing the flotaing point values into several ranges
by magnitude, and applies successively slower but more accurate algorithms.
The last two steps, one covering values up to around 2^7 * pi/2
(called "medium size") and a final one covering all possible float values,
require big tables.
By eliminating the "medium size" case, a table and some code are removed
from the binary. This makes some cases take longer, but saves hundreds
of bytes. It does _NOT_ affect the result, only the speed.
```
[desktop python]
>>> sum(math.sin(2.**i) for i in range(21))
1.4206898748939305
[trinket m0, before change to ef_rem_pio2.c]
>>> sum(math.sin(2.**i) for i in range(21))
1.42069
[trinket m0, after change to ef_rem_pio2.c]
>>> sum(math.sin(2.**i) for i in range(21))
1.42069
```
acoshf, asinhf, atanhf were added from musl. mathsincos.c was
split up into its original, separate files (from newlibe-nano-2).
tan was added.
All of the important missing float functions are now implemented,
and pyboard now passes tests/float/math_fun.py (finally!).