title: Fix "should not use basic type string as key in context.WithValue" golint
body: <p>I am passing an uuid in using the <code>Context</code> and <code>WithValue</code> to subsequent functions that handle this <code>*http.request</code>. This uuid is was passed in the authorization header to a REST call to identify a person. The authorization token is verified and needs to accessible to check if the call is itself is authorized.</p>
  
  <p>I used:</p>
  
  <pre><code>ctx := context.WithValue(r.Context(), string("principal_id"), *id)
  </code></pre>
  
  <p>But golint complains: </p>
  
  <pre><code>should not use basic type string as key in context.WithValue
  </code></pre>
  
  <p>What is the best option that could be used to retrieve this key that is not a basic type like a simple string? </p>