Structural change + API change

Changes include:
* plugin API change (is now unified for all plugins),
* now tests cover plugin's public API,
* [travis](https://travis-ci.org) support added,
* _plugin-developers documentation (and generator) on the way._

Breaks:
* initialization process (**requires server update**).
We shouldn't use random in tests unless we seed it to a fixed value first. Tests should be deterministic.