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>
AddComponentFromPool<T>(Action<T> init)

Implemented a method that allows you to add a poolable component
completely initialized:
so that Systems are notified about the component with all data already
set.
Merge pull request #55 from Maximusya/AddComponentFromPool-with-init-code

Add component from pool to entity after running init code
Merge pull request #4 from thelinuxlich/master

update to latest revision
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
Removed IComponent<> reference from ComponentTypeManager

- Fixed build by removing the reference of obsolete IComponent<>;
- changed tests to reflect actual Base/Derived Component behavior;
Merge branch 'master' into partial-entity