Include check for os_version in task inheritance

Per RAZOR-117: This adds extra verification that the child task's properties override the parent task's properties by checking os_version.
Flag all source files as UTF-8

Unfortunately, some of our UTF-8 support was working through lucky accidents
where Ruby encodings didn't mange the content, or where correctly encoded
strings were merged and promoted the US-ASCII encoding to where it should be.

This adds a header to all our Ruby files flagging them as UTF-8, ensuring that
our static strings default to the same.  This should result in more consistent
and correct behaviour across the product.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Add {fast_,}gettext to Razor server

This adds gettext infrastructure to our product: now we can translate text
using gettext, with an efficient engine that works directly from the po files.

This allows us to have all the benefits of gettext including standardization,
while retaining the overall flex and utility of our Ruby infrastructure.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Gettext-ize all our fixed strings

This updates all the fixed, user-facing strings to use gettext to translate
and gettext-friendly interpolation methods in inject dynamic content into
the strings.

We should now be able to produce translations of our text in a
meaningful fashion.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Create our initial pot translation table

This is the baseline that specific localized translations are created from.
When new strings are added, this needs to be extended with:

    rxgettext -o locales/razor-server.pot \
      --no-wrap --sort-output *.rb $(find lib -name '*.rb')

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Document POT maintenance and coding standards

This includes some brief notes on how to work with the gettext gem in Ruby,
and also how to update the translation template.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>