feat(lock): have consistent errors for common problems

Have a consistent error that people can check for common problems like
locks already being held.
fix(updateengine): use the correct object endpoint.
chore(updateengine): go fmt
feat(locksmithctl): initial working daemon code

This code works against the update-engine master and reboots
successfully when an update has been applied.
fix(locksmithctl): exit after daemon mode

don't hit help, exit after daemon mode finishes.
chore(locksmithctl): remove daemon as a subcommand

Rely on the symlink for now. The daemon subcommand is confusing for a
user otherwise.
feat(locksmithctl): support multiple strategies

See the README.md additions for information.
chore(locksmithctl): use a smaller maximum retry

use 5 minutes instead of 30. Most machines should reboot in about a 5
minute range at the maximum.
fix(lock): return the semaphore count on error
Merge branch 'configuration' into working-daemon
fix(locksmithctl): log if lockAndReboot returns

lockAndReboot should loop forever. If it returns it means that the login
reboot signal never caused a reboot. Log this.
fix(locksmithctl): remove a race with GetStatus

GetStatus was happening before the StatusSignal channel was setup. Do it
after so we don't miss an event.
fix(README): document the default strategy
fix(locksmithctl): remove and cleanup comments

remove the comments about the strategies which are documented in the
README and fixup the reboot comment.
feat(systemd): add a locksmithd.service file
Merge pull request #3 from philips/working-daemon

daemon: initial functional daemon