Revise i18n framework.

- Rename from Messages to K2Strings to avoid confusion
  with K2 protocol messages.
- Add K2Context with ref to K2Strings.
- Refactored K2Strings to be more testable (no more static).
- Added new language-agnostic unit test.
- Fixed some readability issues.