Rename `{take,drop}-while' -> `{take,drop}f'.

Also, improve the tests a little.
Clean up source layout.
Shuffle code for a more logical order.
Added `splitf-at', `takef-right', `dropf-right', `splitf-at-right', and more.

* See comment about implementation issues.

* Removed the `list?' requirement on `takef' etc -- so it matches the
  non-*f versions.  (IMO, it'd be better to drop it from all of them.)
  This also changes the output of `dropf' to `any/c'.

* Swapped the argument order so the predicate is last -- this makes it
  uniform with the non-f* versions.  (IMO, it'b be better to use the
  popular order in all of them instead.)

* Includes tests, and also improved version of previous tests.

* Includes docs, and also fixes to previous docs (eg, drop* doesn't
  return a fresh list).
Move the `define-inline' tests to "tests/racket/optimize.rktl".

Avoids a bad dependency.