Ensure vars used atomically in peer are aligned.

The sync.atomic requires alignment of variables used atomically on ARM.
This commit moves the connected and disconnect variables in the peer
struct up so they are aligned.

Fixes #157.
Return nil for some spent gettxout outputs.

This change modifies the behavior of the gettxout RPC to match the
behavior of the reference client.  If a transaction output is spent by
a mined transaction, the handler will now return nil (JSON null).

While here, avoid indexing some slices multiple times, by creating a
local variable instead.
Fix sending of next item in notification queue.

The notification queue used for websocket client notifications had a
bug which caused the next queued item in some situations to not be
sent, but instead send a previously sent item.  This change fixes this
by setting the 'next' variable to the next item which must be
dequeued, if the queue length is non-zero.

This bug did not always manifest itself as if the receiving goroutine
was ready, a queued item could be sent directly to it rather than
waiting in the queue to be sent at a later time.
Detect chain reorgs that happen during a rescan.

While here, switch rescan method to use hashes, not heights, to refer
to starting and ending blocks.

Closes #151.

ok @davecgh
Incrementally backoff when reconnecting to peers

This ensures we backoff when reconnecting to peers for which we don't
understand the replies, just like we do for peers we fail to connect to.

Closes #103
IMPORT PATH MODIFICATION CHANGESET
----------------------------------

Please use this changeset as the first one on top of the conformal codebase.
Note that if there are new imports, they need to be changed as part of this
changeset. In general, use "git rebase" on github.com/conformal's version
and apply this changeset first.