Some code cleanup and small generalisation

Mostly we made runBot more general and removed the direct
dependency on lens (still needed because of twitter-conduit).

The generalisation should make it easier to implement the DSL.