Use "off" glyphicon instead of "remove"

Needs a few fixes to not look disproportionately large next to the cog.
Also remove that sodden trailing space.
Prevent triggering ng-focus on input during completion

$apply during another $apply is not possible, and .focus() on the input node
triggers the ng-focus on it (which hides the sidebar, if on mobile), so to
prevent the exception from being thrown, move the input node focusing
out of the $apply with a timeout of 0.
Merge pull request #421 from glowing-bear/double-apply

Prevent triggering ng-focus on input during completion
Merge pull request #419 from glowing-bear/glyphicon

Use "off" glyphicon instead of "remove"
Correct setId placement

The setId had been implemented once on the protocol instance and once
as a (unused) static method.
Make it easier to switch protocols

This commit introduces a new module to switch the protocol. It will
look at a protocol=xxx query parameter (like the debug mode) to do so
teddy support
make teddy default protocol
add challengeauth