Add command infrastructure

This PR introduces an initial version of the command infrasructure.
Targets #188.

Please let me know if and how the documentation is not sufficient.
Documentation missing. I don't know what this function is meant to be, but I guess that "get" is a bit inappropriate here, but I don't know what this function is for...