Fun expectation support

This patch adds support for expectations of the form ?expect(FunName, Lambda)
where Lambda is an arbitrary fun with the correct arity.  This allows for
more complicated interactions with hoax where a simple match on args is not
sufficient.