An abstract class which represents specific functionality which an Entity can perform.

Behaviours effectively tag an entity as performing some task. They may contain private working data, and gather references to required properties. They should not contain logic, as that is handled by the behaviours' manager.

Each Scene has a behaviour manager for each type of behaviour. This manager performs any updating or drawing for all behaviours of the relevant type.

 void IManagerHandler.Remove(Behaviour behaviour)
 {
     Remove(behaviour as T);
 }
 void IManagerHandler.Add(Behaviour behaviour)
 {
     Add(behaviour as T);
 }