Add movement type attribute
Add walkable() and compass_opposite()
Many changes to movement and collision system

Trying to implement collisions, failing miserably. Lots of small changes, many improvements, added "pushing", but still not happy with it.