Add BehaviourType to Behaviour.

Because it can be useful knowing which behaviour you are working with.
Fix EntityType functionality.

Making EntityType work correctly with the rearranged EntityFactory.
Add basic implementation for GameEntitySet.

A few things should be corrected...
 * Making the iterator returned by begin() and end() generic so the
   internals can be implemented differently per iterator
 * Actually use the GameEntitySet in the World
 * Satisfy the compiler gods by not returning local variables which fall
   out of scope