Make timeout configurable

This commit makes the timeout in PubHttpClient configurable via a property and/or the constructor. When using the OAuth2Console constructor, there is a new named parameter `timeoutInterval` that can be used to set the timeoutInterval.

When adopting this commit, the bahavior will not change for current consumers of this package, since the default timeout of 30 seconds is still applied. The timeout can however be set and also be turned off by setting timeoutInverval to a value <= 0.

I also added a test: timeout_test.dart. It will allow you to see the new behavior in action.

NOTE: I had some problems when creating this pull request, since it was the first time i synced a git repository from upstream. I pulled all the commits since about a month ago to my local repository and they seemed to have been cloned. So i created a new branch and rebased to my initial fork and added the commits. The changes in this pull request LOOK fine, but please take a second look and make sure i don't ruin anything.

Best regards,
Tommi