Java exception hierarchy for API errors.

* Introduce package com.dnanexus.exceptions with all the API error
  subtypes.

* DXHTTPRequest.request is changed to throw more specific exception
  classes. Improve control flow a bit too.