wip: split builtin_function into 3 modules
wip: builtin_funcitons_fp64: use split bultins
gen_constant_array_size_tests.py: Convert to mako.

This patch converts from string concatenation to using a mako template
to render the tests.

This allows us to throw 100 lines of code away, and makes the template
much easier to understand.
generators: combine constant_array generators

This combines the fp64 and the non-fp64 variants of the
gne_constant_array_size_tests generators into a single generator, using
mako. This removes a lot of LOC, most of which is either a direct copy
of other code, or slightly modified copies of other code.

This results in some very slight changes from the original generator. It
adds extension requirements to the config block for non-fp64 tests
(this was fixed in the fp64 tests, but not in the original tests). This
is a minor change, but a good one. The second change is that the
non-fp64 used function() * function(), while the non-fp64 tests use
pow(function(), 2), after this commit pow is used for both float and
double tests.