Added tests for moving.

- `test_moving` ensures that moving fires the correct events in the
  correct order.
- `test_bad_moving` ensures that movements do not raise any events when
  they cannot be done.