Exposes Localizable.key and add keyPattern for restricting properties key names

An use case is one can construct `StatusCode` class consisting a `Localizable` which `StatusCode.name` is `Localizable.key` with unified naming (e.g. `SYS-CMP-####`) and its `StatusCode.message` delegates to `Localizable.toString()`.