Fix data race in gremlin timeout handling

Fixes issue #95.
Improve error handling

Export the timeout kill error and use error instead of string in result
struct.
Clean up style
Destutter gremlin.GremlinResult
Name reduction
Use time.Duration according to the time docs

Having a time.Duration measuring seconds is likely to cause problems at
a later stage. This change retains configuration compatibility while
adding idiomatic duration use.
Rename GremlinTimeout -> Timeout

Given that there may be other Turing complete query interfaces
(particularly a Go query API), the timeout config should not be
specifically tied to gremlin.
Fix lock contention
Merge pull request #96 from kortschak/gremlin

Gremlin related changes