download profile on tklbam-init

rational: preparation for extending profile function
auto-complete logic for --force-profile + refactored version.py

Previously a complete profile_id was required (e.g.,
turnkey-core-13.0-wheezy-amd64). Now partial profile_id such as "core" will
work too, and auto-complete the release and architecture from the system
version if the provided profile does not include them.

For example::

    root@redmine ~# turnkey-version
    turnkey-redmine-13.0-wheezy-amd64

    root@redmine ~# tklbam-init --force-profile=core
    Downloaded turnkey-core-13.0-wheezy-amd64 profile

    root@redmine ~# tklbam-init --force-profile=core-12.0-squeeze
    Downloaded turnkey-core-12.0-squeeze-amd64 profile
fix bugs in tklbam-init UI + refactor registry.update_profile

Desired behavior::

    # not initialized
    init
        should ask for APIKEY

    init --force
        should ask for APIKEY

    init --force-profile=core
        should ask for APIKEY and force profile to core

    # already initialized
    init
        error: already initialized

    init --force
        should ask for APIKEY if not provided

    init --force-profile=core
        should force update to profile
bugfix: reduce profile timestamp resolution to seconds

rational:

- setting the timestamp of a file (e.g., the profile with sub second accuracy
  is unreliable.

- mismatched timestamps will trigger unnecessary profile downloads
tklbam-restore: update profile

rational: we need the profile to exist to extend the hooks mechanism into the
profile
bugfix: a backup record doesn't need to exist for --dump
bugfix: only attempt to autocomplete profile if incomplete profile provided
bugfix: mysql.restore shouldn't actually touch debian.cnf in --simulate
updated tklbam-squid dependency (important bugfix)
implemented MysqlService (required primitive)
fixed MysqlService so it works even with broken /etc/mysql/debian.cnf
increase robustness of MysqlServer.start/stop methods
implemented MysqlRootAuth primitive (disables mysql authentication)
disable mysql authentication if necessary

rational: this way we don't depend on /etc/mysql/debian.cnf for access to mysql
bugfix: need to close mysql filehandler after fs2mysql