shelve: do not add the dirstate backup to the transaction
Otherwise the transaction will properly clean up its mess on abort… deleting the
backup in the process.
This break with dirstate-v2 that has more file than just the dirstate. The
dirstate itself is full of various exception and is "fine" when using
dirstate-v1.
skip ignored directories if -i or --all not specified
$ hg init t
$ cd t
$ echo 'ignored' > .hgignore
$ hg ci -qA -m init -d'2 0'
$ mkdir ignored
$ ls
ignored
$ hg purge -v --no-confirm
$ ls
ignored