Add a util file for migrations

Even though migrations should be self-contained, there are some things we
want to share, e.g., the regular expressions that express our notion of
what a name or URL is.

Since migrations might run individually, or several together, and constants
defined in one migration are only available if that migration is run, we
need to put these things into a separate file.
Support for 'remote' repos

Repos can now either have a 'iso_url' or a 'url' property. The former
behaves exactly as it always has; the latter makes the repo simply a
pointer to a resource that is maintained outside of Razor.

Fixes https://github.com/puppetlabs/razor-server/issues/53