Use pointer for struct holding lock.

The current code is correct, since the copy only occurs at allocation time, before concurrency.
However, I changed the new function to return a pointer to silence the go vet warning and to remind users to use a pointer to this type.