rosie copy: use single commit

Modify `rosie create` and `rosa svn-pre-commit` to allow a suite copy to
be a single commit.

Add `rosa svn-pre-commit` test battery

Move `rosa-svn-pre-commit` logic into lib/python/rosie/svn_pre_commit.py

Fix `rosa svn-pre-commit` not failing when an author not in the access
list is adding items to the suite trunk.

Add tests for `rosie id` to ensure deleted suites do not cause a
miscount in latest and next.
rosa svn-post-commit: support 1-change rosie copy

Modify `rosa svn-post-commit` to support the improved single changeset
`rosie copy`.

Add basic test battery for `rosa svn-post-commit`.
rosie.svn_post_commit: remove redundant function
rosa svn-{pre,post}-commit: more tests

Add tests for ROSIE metadata suite create and updates.
Add branch and suite delete tests.
rosa.svn_post_commit: tidy up

The main function is now wrapped in a class.
Update CHANGES.md
Merge branch 'master' into improve-rosie-copy
rosie.vc: add finally to tidy up after create/copy
rosa svn-post-commit: more DB table tests

Compare contents in `modified` and `changeset` tables as well as thoses in the
`main` table.
rose suite-hook --shutdown: run with --kill --now

Now run `cylc shutdown` with `--kill --now`. This stops the suite
immediately. Otherwise, it may still be waiting for defunct jobs that
are in the submitted or running status.
Merge pull request #827 from matthewrmshin/rose-suite-hook-shutdown-kill-now

rose suite-hook --shutdown: run with --kill --now
Merge pull request #823 from matthewrmshin/improve-rosie-copy

rosie copy: use single commit