Add option to control output colouring

Also fixes output being coloured incorrectly when output is going to
stderr, but stderr is not a tty.
Make newly sent datasets readonly

This is necessary to prevent the possibility of the remote dataset
diverging from the most recent snapshot, thus requiring a rollback.