Transaction per migration

Implemented one transaction per migration model. This means only failed migration's transaction will be rollbacked and migrations with commited transactions remainds applied.
Transactionless migrations also implemented so it covers following issue: #70