Better interactive behavior of controller.

- Tear down solver when solver is deleted, not
  necessarily at end of controller.run()
- Use Python's `__del__()` method to tear down solver
- Don't overwrite old frames if controller.run() is called twice.

This allows for interactive things like:

```
(set controller up)
claw.tfinal = 1
claw.run()
(get some output frames)
claw.tfinal = 2
claw.run()
(more output frames get appended)
```