OCSADV-27: VoTableClient

This is a small PR containing VoTableClient. It uses the http commons client library to produce a method that returns a Future[CatalogProblem \/ ParsedVoResource] after making a call to one of the Gemini catalogs

A few rawtype warnings were removed as well
It must just happen to take longer to get the failure from the non-working server but there's certainly no guarantee of that.  It looks like you'll have to remove the `\/.fromTryCatch` wrapper and move the fold down to where you call `selectOne`. I guess we can assume that all the servers will return the exact same results for the same query (or else we'd need to tweak the `selectOne` implementation to treat a `Success` with a left result as a failure).  So maybe something like this:

````scala
protected def doQuery(query: CatalogQuery, url: String): Future[CatalogResult] = future {
  // no fromTryCatch wrapper here
  val method = ....
} 

...

def catalog(query: CatalogQuery): Future[CatalogResult] = {
  val fs = for {
    url <- catalogUrls
  } yield doQuery(query, url)
  selectOne(fs).recover {
     case t => GenericError(t.getMessage).left[ParsedVoResource]
  }
}
````