Switch to gorilla websocket and btcrpcclient.

Closes #96.
Modify websocket endpoint from 'frontend' to 'ws'.
Return non-nil RPC results for 0 length slices.

If a JSON array result was successfully calculated, but the
slice/array is empty, the result must be marshaled as '[]' rather than
the JSON null value.  To do this in go, the RPC handlers should never
return nil slices for non-error returns, but return a non-nil slice
header with 0 length.

For example, an empty listtransactions result should be returned as
[]btcjson.ListTransactionsResult{}, rather than nil.
Randomize change transaction output index.

Based on a diff created by @dajohi.
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.
Task #396 on Task Board:

Create a stub websocket call getdepositscript.