Set up the dev environment

See individual commits for details

Closes issue #22