implement delete. doesn't seem to break non-delete behavior, still need to test actual deletes
make various bit constants static
add some unit tests for deletes and fix a bug in the delete protocol (deletes didn't read their own deletes). deletes now seem to work fine though they haven't yet been checked in a concurrent setting (might be hard to write nice verifiable concurrent delete tests)