Clean Up
--------

	Move MapVariable from CodeGen into Block?

Improve test:

	Necesitamos que a-capture8.cs pruebe si la asignacion funciona o no.

Audit:

	Al emitir instancias de variables
	(EmitCaptureVariableInstance) parece ser que el loop de iteracion:

	while (si.ScopeBlock.ID != li.Block.ID)

	est mas actulizado que el codigo similar para parmetros, es posible
	que sea bitrot de parmetros o que en los parmetros usamos otra estrategia
	(lo segundo es ms razonable).
	
Iteradores:

	En algn lugar no pongo el `FieldBuilder' a un valor con los
	iteradores, ver expression.cs: 3616, local_info.FieldBuilder es nulo.

Parameters:

	a-parameter4.cs falla por que no se liga el mtodo annimo
	anidado con el padre.

Cleanup:

			CaptureContext cc = ContextForParameter (ec.CurrentBlock.Toplevel, name);
			if (cc != this){
				cc.EmitParameter (ec, name);
				return;
			}

	That should be a static method, and call the instance method
	in the right CaptureContext, instead of having the CaptureContext
	compute that itself.

MakePinned is gone:

	Need to audit the code now that use DeclareLocal, and that this uses
	a differnent code path than the main mcs.

Need to fix the order in which types are closed: currently we are not
compatible with the MS requirement that the parent has to be created
before the children are.

Tests and pending features:

	Switch statement is broken (because it uses ILGenerator during
	the Resolve phase, which with the `anonymous' branch is no longer
	the case: so we have to delay the creation of labels until they 
	are needed, during the Emit phase).

Validation:

	For testing, set ec.IG == null during resolve, restore value
	for emit.

	Currently it is commented out: there is a bug in the
	statement.cs changes (see the old-statement.cs, the compiler
	fails during bootstrap)
