Assign minimal metadata to metadata objects in protocol.py

Some nodes will never have metadata, particularly in the case of grafted
paths. So a default blank metadata needs to be sent to keep the protocol
synchronized.
Merge branch 'remote-restore-server-protocols' into index-grafts-ce
Send blank metadata, but do not set git mode in protocol.py

This will need further improvement I suspect - either a separate gitmode
tag, all improved common_rec knowledge since we do need to determine
directory and/or file status.
Add tprotocol.py for protocol specific tests.
Modify metadata to support storing the git file mode.

In the advent that a VFS node has no metadata, it would be nice not to
break the normal metadata features. This patch adds a new tag _rec_vfs
which stores the git file mode which the VFS falls back on.

This tag will normally never be used unless explicitely enabled, so
there is no overhead.
Merge branch 'remote-restore-server-protocols' into index-grafts-ce
Fix from_vfs did not return a value.
Merge branch 'remote-restore-server-protocols' into index-grafts-ce
Missed a list dereference in the unpack code in metadata.py
Merge branch 'remote-restore-server-protocols' into index-grafts-ce
Fix imports in tprotocol.py
Merge branch 'remote-restore-server-protocols' into index-grafts-ce
Disable tprotocol.py for now.
Merge branch 'remote-restore-server-protocols' into index-grafts-ce