More optimisation WIP
Fixes so that optimisations work as intended

- renamed some of the scripts
- fix to test_above: wasn't returning an index if asked for one when a cache is being maintained.
- we don't return to the start of the candidate basis after an expansion, but wrap around cyclicly
	- this explains why some of the freaky, periodic examples were taking ages to run

Personal note: I get the feeling that the Generator class isn't the right solution. We need some way of representing Bases which is
- easy to expand;
- easy to test for membership;
- easy to test for being above something,
and I feel that the generators class isn't quite that. But this is just something to think about in the future.