Simple RPC Authentication

Based on #148, this adds a simple auth mechanism to the RPC layer. If an `rpc_auth` config is provided to the agent, then the RPC layer will not allow any commands to run until the `auth` command is successfully invoked. The command simply transmits the auth token which must match the configured token.

As stated previously, the assumptions are that the agent communication is running over localhost, so that this is not meant to provide the same security as TLS. It is merely a way to gate out processes or users which do not have the token. A root user could obviously inspect network traffic to Serf, but this is not meant to protect against that. Fixes #148.