Optimize checks

We were creating a lot of temporary token objects in loops.

Replace vectors created on each function call with static std::array
instances.

MASSIVE improvement in speed:
On Folly+Gtest+double_conversion, time is now down to 1.6 s (vs 3.7 for
Flint C++, and 2.4 before this PR)

On my own code base, time is now 0.156s, used to be 0.98s in the initial
tests (and 0.27s before this PR)