Adapted compile time resolution of sends
Adapted compile time resolution of sends

The introduction of object literals means that the logic for resolving
message at compile time needs to be changed.

In particular, we need to first check whether the send refers to an
argument or variable in scope. We first check for local variables and
arguments in the given (activation as before), we then check the slots
defined on an object literal (unlike before); and then to continue
outward into the enclosing scope to check for non-local variables or
arguments (as before). If nothing is found then the message is treated
as an implicit send (as before).

These changes introduce the logic needed to search for a variable and
decide its context level and have adapted the methods to create
implicit and setter sends accordingly.

MetaConc/SOMns,MetaConc/SOMns,smarr/SOMns,richard-roberts/SOMns,MetaConc/SOMns,smarr/SOMns,richard-roberts/SOMns,smarr/SOMns,richard-roberts/SOMns,richard-roberts/SOMns,richard-roberts/SOMns,smarr/SOMns,smarr/SOMns,smarr/SOMns,richard-roberts/SOMns,richard-roberts/SOMns,smarr/SOMns