Overhaul console code.

Console can now access any public static variables, properties or methods of any class available through reflection, or those belonging to a static "main" instance of that class. Variables, properties or method parameters must be of types: Vector2, Vector3, Color, Rect, string, char, sbyte, int16, int32, int64, byte, uint16, uint32, uint64, float, double or boolean. Methods can return any type, and the returned object's ToString will be echoed to the console.

Add alias deleting, key binding, and key unbinding to console as well.

Add an EnumF class containing a method which is documented in .NET but nonexistent in Mono for some reason.