Experiments in C# IL generation.
Includes:
- Duck-typing a class to an arbritrary interface.
- Aspect-oriented programming using the message sink.
- Aspect-oriented programming using code injection.
- Mixins using extension methods with a ConditionalWeakTable to manage state.