Multi-instance support

Only works in the GUI for now, doesn't break  the command-line client but the new options are not implemented.

Related to #29 
This name might be a little confusing, given there's also a ToString() method that objects have as well (which for modules gives us identifier + version).

- [ ] I'm going to pop a PR on your PR to change this to `to_json`. ;)