datastore: Key.Equal fixes

Fixes two issues with Key.Equal:
1. Equal non-nil keys were stuck in an infinite loop
2. Comparing a nil key and a non-nil key was returning true