Added tests for thread-first.

It's much the same as thread-last, really. These tests do not cover the
following:
	* Rebinding
	* Excluded functions
You can never have enough tests, right?

Right.
Cleaned up thread-last.

It wasn't particularly well-organized, so I refactored it a bit. Hopefully
that's a tad clearer!
Added thread-first.

I'm thinking just spitting the suggestions out into a list is a Bad Idea.
So, two things to do in the immediate future:
	* Change suggestions into a list of maps instead of strings
	* Fix the parser so it doesn't freak out on those two tests -
	  they're failing not because of the thread-first algorithm, but
	  because the parser can't turn them into trees!