EntityManager compiles, whole program is likely broken

Factories now return a pointer to the created component
- IGLView and its descendents are now components

All entities and components will be owned by an EntityManager
- TODO remove ownership of components from systems

Also, Properties have const Get() and GetName() because it's good practice
Made EntityManager contexts easier

instead of supplying the context to every function, i.e. `EntityExists(ctx_id, ent_id)`,
now it is `UseContext(ctx_id);`, and all subsequent functions use that context (more
like opengl's pattern, eh?)

A static default context is created and used automatically. This means that you can dive
right in to creating entities/components without worrying about contexts unless you want
2 or more of them.
ISystem is now Sigma::ISystem
IComponent is now Sigma::IComponent

various other classes got Sigma namespace and #ifndef include gaurds
current context id is tracked

CurrentContext() gets the currently active context
NoSuchEntityExceptions can now specify the current context, which will hopefully make debugging easier
Test created for EntityManager
Fixed bug in EntityManager

With N contexts, allowed switching into N+1st, which didn't exist.
Merge branch 'develop' into entitymanager
only one FPSCamera created

the camera created inside OpenGLSystem is used in the mover and for events