Aggressive optimisation for default and broadcast functionality.

The default and broadcast functions are called for almost all other functions
in tawny, often several times in the call stack. While they were reasonably
efficient for slow cases, they involve box and unboxing arguments into lists,
and were very slow for what should be fast cases. This patch fixes by loop
unwinding, and avoiding variadic args where possible.

There are several knock on changes from this. :ontology frame functionality
has been removed for most functions. This requires scanning all arguments in a
function, so enforces use of variadic arguments. It was used in quite a few
tests which pre-date the default-ontology functionality; these have been
updated.

It has been re-added specifically to the defentity macros, where it is
essential, although in a more constrained form. As a result, these got longer,
so the code duplication has been removed with a new defentity macro. The
with-ontology functionality also causes a slow down, and has been removed as
it was essentially legacy. The few remaining uses were removed. Finally, there
was some default ontology usages in tests which have also been removed.