refactor ContentField > keyfield and index field into AbstractkeyField ancestor; refactor commitandcontinue binding to enter()