Use mtx to control disconnect of websocket client.

This commit changes the websocket client code to use a mutex for
disconnect since it's theoretically possible a non-blocking select on the
quit channel could fall through from two different goroutines thus causing
a second call to close.

ok @jrick.
Update for recent btcutil Addr interface changes.
Update sample conf regarding debuglevel subsystems.

The debuglevel parameter has accepted subsystems in additional to an
overall level for quite some time, but the sample config file was not
updated to reflect that.

This commit updates the sample config file accordingly.
Add IP address to peer error messages.

Closes #102.
Fix typo on previous commit.

The peer and error were reversed for the regression test error message
case.

Spotted by @dajohi.
Add IP address to a few more peer error messages.

This commit adds the peer IP to a few more error messages as originally
noted by #102.
Alphabetize subsystem loggers.

This commit simply alphabetizes the subsystem logger variables, map, and
use switch so the order in the code is consistent with the sorted output
displayed when using --debuglevel.
recieve -> receive
Lower min transaction relay fee to 1000 satoshi.

This mirrors a recent change in the reference implementation.  Since the
vast majority of the network still uses it and transactions which aren't
considered standard won't be relayed, the rules for standard transactions
need to be kept consistent.

Ideally this should be handled via floating fees, but we're rather limited
until we have miner support and a larger network share so the probability
of a transaction being relayed and confirmed is high.

Closes #100.

ok @owainga
Consistently use the peer stringer to print the peer address.

This provides more information than using the address directly.
Retain order when processing client notifications.

This change modifies the RPC server's notifiation manager from a
struct with requests, protected by a mutux, to two goroutines.  The
first maintains a queue of all notifications and control requests
(registering/unregistering notifications), while the second reads from
the queue and processes notifications and requests one at a time.

Previously, to prevent slowing down block and mempool processing, each
notification would be handled by spawning a new goroutine.  This lead
to cases where notifications would end up being sent to clients in a
different order than they were created.  Adding a queue keeps the
order of notifications originating from the same goroutine, while also
not slowing down processing while waiting for notifications to be
processed and sent.

ok @davecgh
Do not block removing clients if notification manager quit.
mention IRC server
remove link
Added missing notificationMsg types to notificationHandler
Convert block manager block handler to pure FIFO.

Rather than having a separate query channel for the block manager, use the
same channel so the block handler acts as a pure FIFO queue.  This
prevents possible starvation of query related messages.

ok @owainga
Fix some comment typos.
Update install command to also install utilities.

This commit updates the install command under the Installation section in
README.md to include all subdirectories thereby including the utilities
such as addblock and btcctl.
Updated getinfo to return new RelayFee and use btcjson.InfoResult
Improve non-standard tx error message.

This commit removes the word "only" from the non-standard transaction
error message when the number of items on the stack does not match the
number of expected items.

This was suggested by @mbelshe.