InvocationBuilder: move the call to compute() from the factory methods of InvocationBuilder to the build() method
InvocationBuilder: Move the addition of implicit arguments (for array(), arrayOfSome() and arrayOfNone()) outside makeInvocation()
InvocationBuilder: We no longer have arrayOfSome() or arrayOfNone(), so we don't need to worry about prepending implicit arguments for them
InvocationBuilder: Transform the arguments *after* we've transformed the primary. For the NamedArgumentInvocationBuilder this is complicated by the fact that the vars have to be built before we transform the primary (because the first of those vars is the transformed primary\!), so we split up the populating of the vars from the appending of args
InvocationBuilder: Rename some methods
InvocationBuilder: Move some code messin' with the transformed primary from transformInvocation() to transformPrimary() where is belongs
InvocationBuilder: Move some mode code messin' with the transformed primary from transformInvocation() to transformPrimary() where is belongs
ErrorCollector: Minor
InvocationBuilder: Minor tidyup/inline
InvocationBuilder: Minor tidyup/inline
InvocationBuilder: transformInvocationOrInstantiation() and three methods
InvocationBuilder: Special case the transformation of the arguments on a method of a value type, so we're not changing the argument list after it's supposed to have been transformed
InvocationBuilder: Remove typearguments which wasn't being used
InvocationBuilder: Start using a CallBuilder, instead of maintaining the list of arguments and type arguments ourselves
InvocationBuilder: typeArguments
InvocationBuilder: Inline appendArgument() now it's just delegating to callBuilder()
InvocationBuilder: Fixup the type arguments on instantiator methods
InvocationBuilder: Tidy up
InvocationBuilder: Remove callBuilder member from the InvocationBuilder. We now create the CallBuilder in build() and pass it on the stack. At this point build() 'has all the logic' for creating an invocation; Everything that happens before build() could in theory be inlined into the ExpressionTransformer etc
InvocationBuilder: Refactor Invocation.build() (and many of the methods it calls)
moving it to the ExpressionTransformer. Named name all the *InvocationBuilder classes
to *Invocation, since they're now much more about presenting a consistent
interface to the transformation code which is now in ExpressionTransformer.

Inline the static factory methods of InvocationBuilder