Document patching limitation

and add a test to demonstrate it
Replace ANY with a whole suite of matchers

ANY -> ANYTHING to avoid collision with existing name and to be
consistent with the other matcher names
Minor tidy up
ANY is now ANYTHING

and tested elsewhere
REFACTOR: hide coroutine use from end users

Previously users defined new fixtures by defining coroutines however it
seems more idiomatic to use do blocks to apply fixtures so it would be
nice if things like Base.cd() was a valid fixture so I've redefined
everything so that a fixture is just a function that takes a function as
its first argument.

The down side of this it that the amount of boilerplate to define a
fixture has gone up as the fixture writer must now care about
exceptions, e.g.
function myfixture(fn::Function)
# setup here
try
fn()
finally
# teardown here
end
end

but maybe I will define a macro to make that neater