Complete SUBST support with :test-not keyword parameter, error checking and tests
Add COMPLEMENT function definition, including tests.
Add SATISFIES-TEST-P utility function, to be used by functions with key, test
and test-not keyword arguments.
Modify SUBST to:
* use satisfies-test-p to check if tree items satisfy the test
* return the same (sub)tree if no substitution has been done. Implementation
  dependent test is changed accordingly.
Remove unneeded whitespace