Rework trigger handling, so that markov and remove work in PM as well.
Implement my own Sqlite Connection pooling, which keeps one connection
per thread thanks to ThreadLocal<T>.
* Chainey.cs: We don't need to keep references to Thread's. Also fix
  the usage of the markov trigger when used in PM.

* Database.cs: Make the database portion of Chainey use the new Sqlite
  Pooling.