Changes to Singulo, ported over the OOP Singulo changes from /tg/.

This isn't finished yet.
```dm
  step_towards(src,S)
else step_towards(src,S)
```
should just be
```dm
step_towards(src,S)
```