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.
Make member private
Fix a bug parsing error responses.
Bug was introduced by a change to make json parser more robust. The change was to make parsing of BoxTypedObject fall back to base type if "type" field doesn't exist or is unknown. However caused a json parsing exception swallowed and produced a class cast exception
Merge pull request #56 from box/parseerrorfix

Fix a bug parsing error responses.
Fix jenkins build error. Wasnt manifesting in eclipse
Merge pull request #57 from box/fixbuild

Fix jenkins build error. Wasnt manifesting in eclipse
Merge branch 'master' of github.com:box/box-java-sdk-v2 into keepalive
Merge pull request #54 from box/keepalive

Re-use HttpClient in BoxBasicRestClient
update oauth refresh upon the changed behavior our backend OAuth refresh. The new behavior is: after refreshing, the old refresh token keeps valid until the newly generated token is used. The change is to make sure if a thread failed refreshing, another thread can still try to refresh.
Merge pull request #59 from box/refresh

update oauth refresh upon the changed behavior our backend OAuth refresh...
update javadoc
Merge pull request #60 from box/javadoc

update javadoc
fix a bug that response content are not consumed when parsing for an BoxUnexpectedStatus error
Merge pull request #62 from box/consume

fix a bug that response content are not consumed when parsing for an Box...