Command set versionning (fix #30)

first pull request of the year \o/

This implements command set versionning. I am not entierly sure of my implementation details, especially for the tests, so peer review welcomed.