Change timeout.Timeout into an interface.

Since there's only one New* func in timeout package, it's more
idiomatic to call it timeout.New() rather than the redundant
timeout.NewTimeout(). See
https://code.google.com/p/go-wiki/wiki/CodeReviewComments#Package_Names.
This makes the API clearer, timeout.New() is the only way to create it.
No longer possible to create timeout.Timeout{} which would be an
invalid object.
Merge pull request #1 from pavben/expose-timeout-as-interface

Change timeout.Timeout into an interface.