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 pull request #57 from Maximusya/master

Fixed build and tests
ComponentType properties with side-effects

Removed ComponentType's NextId and NextBit properties because of
side-effects while debugging.
Merge pull request #58 from Maximusya/master

Removed ComponentType properties with side-effects
Made SystemBitManager instanced

Changed SystemBitManager usage from static to instanced:
- solves a multithreading issue when several EntityWorlds are
concurrently initialized;
- solves an issue when every next EntityWorld created gets its System's
SystemBit starting not from 0, but from the last bit of the System of
the previous world (i. e. SystemBit value gradually increases between
worlds).
Merge pull request #59 from Maximusya/master

Made SystemBitManager instanced
Got rid of double Refresh when deleting Entity

When an entity was being removed from EntityWorld,
EntityManager.Remove(entity) caused Refresh(entity) two times: once in
Remove, once in RemoveComponentsOfEntity.
Now it:
1) cleares TypeBits;
2) calls Refresh (causes every System's.OnChange)
3) nulls Components in Component containers
Merge pull request #60 from Maximusya/master

Got rid of double Refresh when deleting Entity