fix move-devel-to-release

In the upgrade from MM 1.3. to 1.4 in Fedora Infrastructure, it was
noted that we could not make the Repository() objects simply "move"
from development/ to releases/ as we thought, because there were
already Repository objects on the releases/ directories, but with
incorrect data.  We needed to update those, and zero out fields on the
ones in development/.  That's what this patch does.

In MM 1.4, it should be that Repository objects won't get created on
releases/ directories.  So we'll have to revisit this about when
Fedora 20 branches from rawhide to be sure it works the way we want.
umdl: add debug message when creating a Repository
fix for "expected a bool or an int"

This should fix following traceback.

File "/home/staff/adrian/mm/server/mirrormanager/model.py", line 239, in _uploaded_config
  self.user_active = config['host']['user_active']
File "<string>", line 1, in <lambda>
File "/usr/lib/python2.7/site-packages/sqlobject/main.py", line 1035, in _SO_setValue
  dbValue = from_python(value, self._SO_validatorState)
File "/usr/lib/python2.7/site-packages/sqlobject/col.py", line 690, in to_python
  (self.name, type(value), value), value, state)
valid: expected a bool or an int in the BoolCol 'user_active', got <type 'str'> '1' instead
https://fedorahosted.org/fedora-infrastructure/ticket/3880

If a URL is added to a Host Category which already exists in the
database, MirrorManager reports Success even though it has not
actually added it to the database. This patch displays an error
telling the user that the URL already exists in the database.
crawler_perhost: fix traceback by moving host definition higher
crawler: report run times, cleanup imports
crawler: import datetime as dt to avoid name conflict
crawler_perhost: add more flush() calls
bump crawler timeout to 120 minutes; 90m isn't enough anymore
crawler_perhost: use logging module

instead of logging to stdout manually, which gets tripped up by the
logrotate daemon sometimes, use common logging library code instead of
doing it all ourselves.
crawler_perhost: ignore SIGHUP more cleanly
crawler_perhost: drop --debug-*, keep --debug

we don't need --debug-http, --debug-ftp, --debug-rsync anymore, now
that we are using logging.debug() calls.  Keep --debug only.
crawler: use logging module, crawl Internet2 private hosts too
crawler_perhost: clean up timeout handling

Simplify timeout handling. We don't need to invoke signals,
os._exit(), or other nonsense.  Simply set a global variable, and
check it in a few logical places, exiting cleanly thereafter.
crawler_perhost: cleanups suggested by pyflakes
crawler_perhost: cleanups suggested by pylint
crawler_perhost: timeout of 2 hours wasn't enough, let's try 3
be sure is_sysadmin is set in the kid templates
crawler: typo fix
crawler: hard-code location of crawler_perhost