Implemention of GenericIdiomaticAssertion

This PR has addressed the issue(#119). 

Please, forgive me for not discussing enough in the issue thread. I can accept even if this PR is not pulled. I'll be glad to give me any comment to improve this implemention.

This PR used [TypeBuilder](http://msdn.microsoft.com/en-us/library/system.reflection.emit.typebuilder.aspx) to create a dummy type dynamically. The dummy type will be used to make unclosed generic(unbound, open and constructed) type to closed generic type. About generics terminology, you can refer to [here](http://stackoverflow.com/questions/4876622/net-generics-terminology-open-closed-unbound-constructed).

All the dummy types have a default constructor and if a base type only have parameterized constructors, the dummy types will pass anonymous specimens as the parameters to the modest constructor of the base type. All methods of the dummy type will throw NotSupportedException if called.

If a generic type like `Bar<T> where T : Foo` is requested, `ClosedGenericType` will create the `Bar<DummyTypeOfFoo>` type.

```c#
public abstract class Foo
{
	protected Foo(object argument1, string argument2)
	{
	}

	public abstract object Property
	{
		get;
		set;
	}
	
	public abstract void Method(object argument);
}

public class DummyTypeOfFoo : Foo
{
    // This feild will be set from `Fixture` after this type is created.
    public static object[] arguments;

    public DummyTypeOfFoo()
        : base(arguments[0], (string)arguments[1])
    {
    }

    public override object Property
    {
        get { throw new NotSupportedException(); }
        set { throw new NotSupportedException(); }
    }

    public override void Method(object argument)
    {
        throw new NotSupportedException();
    }
}
```