Improved the approach to behaviours slightly. Implemented IBehaviour which I think objects and entities could implement themselves if they want to, rather than a separate behaviour class. The behaviour class also takes a type parameter derived from Entity so behaviours can limit the types of entitys they are applied to