Support for non-transactional migrations.

Some DB engines do not support ALTER statements inside a transaction. Added ability to disable transaction on individual migration level by overriding  the isTransactional() function.
It's better to let this base on the fact, whether or not the transaction was previously started.

```php
$transaction = false;
if ($this->transactional) {
    //only start transaction if in transactional mode
    $this->connection->beginTransaction();
    $transaction = true;
}

// ...
if ($transaction) {
    $this->connection->commit();
}
```

Additionally I wouldn't introduce a new property, because you don't know, if the method `isTransactional()` will _always_ return the same result. So at the end the value of `$this->transactional` and `$this->migration->isTransactional()` can differ at some point.

```
if ($this->migration->isTransactional()) {
    $this->connection->beginTransaction();
}
```