Turns and priorities, refs #248

# TODO

- [x] Нет документации к методам
- [x] Странная история с battle_participants
- [x] А почему kind не ENUM?
- [x] ...с нормальной конвертацией
- [x] и permissions тоже, раз уж они в этой ветке
- [x] SQLPROF гонял? (ну ладно, я гонял)
- [x] А вот это безобразие когда прекратится? Почему не sync?

```js
async.series([
 function(callback){ mg.migrate(conn, {table: 'uniusers'}, callback); },
 function(callback){ mg.migrate(conn, {table: 'locations'}, callback); },
 function(callback){ mg.migrate(conn, {table: 'monsters'}, callback); },
 function(callback){ mg.migrate(conn, {table: 'battle_participants'}, callback); },
 insertCallback('uniusers', {"id":1, "location":1}),
 insertCallback('locations', {"id":1, "ways":"Left=2"}),
 insertCallback('locations', {"id":2}),
 function(callback){ game.canChangeLocation(conn, 1, 2, callback); },
 function(callback){ game.changeLocation(conn, 1, 2, callback); },
 function(callback){ game.canChangeLocation(conn, 1, 1, callback); }
```

- [x] А вот это вот как появилось? Почему нельзя было допилить саму migrate?

```js
function migrateTables()
{
 for (var i=0; i<arguments.length; i++)
 {
  mg.migrate.sync(mg, conn, {table: arguments[i]});
 }
}
```

- Мы пересмотрели механику, и теперь игрок нападает на всех сразу, и агрятся на него тоже все сразу, причём шанс получить пизды равен шансу от самого агрессивного монстра на локации. Касается 
- [x] changeLocation
- [x] и goAttack.
- [x] //assume function is SQL query - NO YOU DON'T
- [x] Тесты для createBattleBetween
- [x] И ещё раз после этого SQLPROF прогнать надо.