User register implement

ordinal は通常ロジックでは使用しないほうが良い (Effective Java 項目31)。 State を受け付ける builder#state を定義してください。