shelve: drop pickle usage
Pickle was used to the `shelvedstate` file. However the content of the file is
very simple and we can handle serialisation ourself. Not using pickle is a net
win.
Note incrementing the format version as no releases have been done so far.
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ echo "[extensions]" > .hg/hgrc
$ echo "inotify=" >> .hg/hgrc
$ hg inserve -d --pid-file .hg/inotify.pid
$ echo a > a
$ hg ci -Aqm0
$ hg co -q null
$ hg co -q
$ hg st
$ cat a
a
$ "$TESTDIR/killdaemons.py" .hg/inotify.pid