Add protocol version validation to `createInitialState`
Validation checks that: * current protocol version is within the era's bounds * previous protocol version is at most the current version * previous protocol version + 1 is within the era's protocol version bounds