add Transition module

Transitions for any datatype! :)

The weird 
```haskell
type Transition a = StateT a (Writer [(a,Time)])
```
is only there, so later one can write things like
```haskell
startWith newTurtle $ do
  forward 100
  rotate (1.5*pi)
  forward 200
```