Enabled generic Entity.AddComponent<T>

Fixed: All the AddComponent<T>(IComponent component) method chain was
dead code by default:
entity.AddComponent(new MyComponent());
always chose non-generic Entity.AddComponent(IComponent component)
IComponent<T> interface is obsolete

Use entity.AddComponent(derived as BaseComponent) if you wish to use
derived component as a base component
Made use of generic EntityManager.AddComponent<T> in Entity.AddComponentFromPool<T>
Implemented ComponentTypeManager initialization

Implemented ComponentTypeManager initialization:
- from assemblies (searches for valid Components);
- from types (searches for valid Components);
ArgumentException when initializing ComponentTypeManager with invalid Type

- If one of the Types a ComponentTypeManager is initialized with does
not come from IComponent, throw ArgumentException;
- added ignoreInvalidTypes parameter to suppress the afore mentioned
ArgumentException
Fixed tests

Fixed tests to be compiled under Mono with NUnit test framework
Further fix tests

Commented resetting ComponentTypeManager and asserting
ComponentTypes,Count in order to let the tests wrongly succeed under
Mono NUnit
Merge pull request #56 from Maximusya/Component-Type-system-initialization

ComponentTypeManager initialization
Merge pull request #54 from Maximusya/enable-generic-addcomponent

Enable generic addcomponent