implement verifymessage

Moving this intp btcd rather than btcwallet. I'll send a PR to remove from btcwallet once this has been merge. See discussion at: https://github.com/conformal/btcwallet/pull/124#issuecomment-52983230

Question: what is your procedure for testing? I noticed that there is no rpcserver_test.go file.
Please include the error in the returned message.  I know Bitcoin Core doesn't do it, but I really want the error to be useful.  I'd suggest `Message: fmt.Sprintf("Invalid address: %v", err)`