Update docs and test for sparser import

Apparently, importing without an import list imports all ops too.
This makes it much easier to import and I don't have to remember the
operator precedence each time I use it.
Do function application with a hook

The hook func:compile_function/4 lets others define function behavior
for any term they like.  For example, someone who implements a hash
table might define function application as looking up a key in the
table and throwing an exception if it doesn't exist.

This makes it easier for me to add different kinds of functions.  It
also acknowledges that I won't come up with all the ways function
application might be useful.
Make compile_function appear in PlDoc

I'm not sure why PlDoc didn't show the documentation before.  It
should show docs for multifile predicates since they're obviously
meant for use outside the module.  They are documented that way in
SWI-Prolog online docs, but I can't spot how it's done.

This will have to suffice for now.
Use compile_function for `of` too

This way, one can define a function compilation once and have it work
with both kinds of syntactic sugar.