Layer data is now stored in rooms

Instead of being set onto the BasicMain, layers are stored in the room
objects, this change also introduced changes to the editor to accomidate
this and to the example rooms.
ParticleFields now respect e.d.destX/Y
FluidLayer components
Changed how velocities work

Instead of applying them, an event is called, and all behaviours should
return the velocity they are applying before it is moved. Also added
Bouyancy behaviour.

This change may be buggy because I've just come back to the code after
not working on it for a while.
Image now casts location to int