Re-use HttpClient in BoxBasicRestClient

Currently, we are creating a new HttpClient for every remote call the SDK makes. This is very inefficient in that it leads to certain actions like SSL negotiation to happen on every connection, instead of once per route. This patch re-uses the same HttpClient for every call, and uses a ThreadSafeClientConnManager to manage the pool of connections.