add open timeout and timeout settings to API client

warn the end-user if a source timed out during communication but
continue working to allow for effective offline use
make Source#universe and Source#build_universe more intuitive
Merge pull request #944 from berkshelf/friendly-apisrv-timeout

add open timeout and timeout settings to API client