Refactor `normalize_os` into smaller chunks

This should also fix the broken specs on Travis.  Note that this does **not** have the migration for re-normalizing existing hosts.