Squashed commit of the following:

commit 9bbeceba142f3103d131370c53aa2e92004d5882
Author: Sam Shull <sshull@zendesk.com>
Date:   Wed Jul 10 14:00:46 2013 -0700

    Change guard timing to apply consistently

commit ac26940fb6526d4cd81b3e2dcc393c3cfae93f78
Author: Sam Shull <sshull@zendesk.com>
Date:   Wed Jul 10 10:39:14 2013 -0700

    Restoring ran too often and async

    The previous version of the restoring operations needs to be sync and
    only run when needed.

commit 2edf91af0e84f0af82e5b8061c886a97d2d64618
Author: Sam Shull <sshull@zendesk.com>
Date:   Tue Jul 9 13:02:41 2013 -0700

    Add built radar_client

commit ef3e954dee4566b766f9ca8c79a46c27831f5df6
Author: Sam Shull <sshull@zendesk.com>
Date:   Tue Jul 9 12:58:08 2013 -0700

    Write reconnector tests

commit 7a8c1a43f24904d34cbc5866f6851d2a3fb28f5e
Author: Sam Shull <sshull@zendesk.com>
Date:   Tue Jul 9 09:38:48 2013 -0700

    Commit built radar_client

commit adf51918130477590a48f61d6edbf0435d991353
Author: Sam Shull <sshull@zendesk.com>
Date:   Tue Jul 9 09:34:08 2013 -0700

    Make reconnect state change clearer

    - Remove unused argument
    - Only reconnect if still disconnected in async function
    - Only connectWhenAble() if not already activated

commit 7294bbffbb4fd2c235b75689d6dbdb3115f6fd69
Author: Sam Shull <sshull@zendesk.com>
Date:   Mon Jul 8 18:00:43 2013 -0700

    Reconnecting RadarClient was causing issues