Ban self-dependent types, report missing names

Failure to satisfy a type reported the value and the type with the
exception, but did not mention the missing method name. Now the type
matching raises a more specialised error that reports the first
signature name that was not a method in the object.

In order to facilitate this change, all self-dependent types will now
raise an Invalid Type error, as expected. The type proxy logic now
facilitates reacting to type resolution, as well as handling
dependencies between proxies, and self-dependent types are detected by
checking if any types have not been fully resolved once the type
hoisting phase is over. Producing an 'and' pattern that contains at
least one unresolved proxy that produces a new proxy that will resolve
once both of its dependencies do, at which point, if the two
dependencies turn out to be types, it will receive an assert() method
that reports missing method names as well.
Ensure that inheritance preserves parameter counts

It was possible for inheritance to change the parameter and generic
parameter counts of methods, such that overriding a method did not
preserve the existing runtime definition of subtyping. Now an Invalid
Method error is raised if an overriding definition produces a mismatch
with the parameters in the super object.
Convert primitive method results to Grace objects

The lookup procedure pulls out methods from built-in Grace objects when
detecting JavaScript primitives as receivers of method requests, which
comes with the assumption that the outcome of the method was also a
Grace object. This was not necessarily true, particularly for lists, so
the outcome is now converted from a primitive.
Revert ambiguity, resolve to nearest definition

The ambiguity rules for lookups made inheriting from a dialect
practically impossible to use. As such, the ambiguity error has been
removed, and the lookup will always resolve to the first definition that
it finds. A test for a bug that existed in the old lookup system where
the most distant name was resolved instead of the closes has been added,
and the prelude setup has been tidied up.