Respect the user's environment variable for GOMAXPROCS

As a user of your software, if `GOMAXPROCS` exists in my environment, I shouldn't have to pass that in as a command line arg. In the Go ecosystem, this is usually true (see: http://golang.org/doc/faq#Why_no_multi_CPU)

This PR adds a `defaultMaxprocs` which attempts to read from your environment, otherwise, uses `runtime.NumCPU() * 2` as before.