Add .idea to gitignore
Add a custom error type for HTTP 401 unauthorized

In the CLI we found that we wanted to be able to programmatically
capture this error and refresh the user's access token for them. The
way this was implemented before made this difficult because we would
have been tied down to the particular error string returned. We believe
that the idiomatic way of catching *some* errors in Golang is to have an
exported error type -- some of the builtin net packages do this.