Support for transactions & castable results

Added support for SimpleTransactions.

ToRows now returns a SimpleList so this is possible:
IEnumerable<MyEntity> entities = db.ToRows("SELECT * FROM MyTable");

Some cleanup, made internal, line breaks etc.