refactored benchmark into its own file; added locking logic for kv
updated README to reflect locking vs non-locking kv