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
Ok this seems to work. Puzzling that it's not a built-in. 

```scala
import java.lang.System.{ currentTimeMillis => now }
import java.util.concurrent.atomic.AtomicInteger

import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{ Future, Promise }
import scala.util.{ Success, Failure }

// First success or last failure
def selectOne[A](fs: List[Future[A]]): Future[A] = {
  val p = Promise[A]
  val n = new AtomicInteger(fs.length)
  fs.foreach { f =>
    f.onComplete {
      case Success(a) => p.trySuccess(a)
      case Failure(e) => if (n.decrementAndGet == 0) p.tryFailure(e)
    }
  }
  p.future
}

def a = Future { Thread.sleep(1000); throw new RuntimeException("oops") }
def b = Future { Thread.sleep(2000); 42 }
def c = Future { Thread.sleep(3000); 99 }

def test[A](fs: => List[Future[A]]): Unit = {
  val start = now
  val f = selectOne(fs).onComplete { r =>
    println(s"${now - start} ms : $r")
  }
}
```

You can then test it in the REPL ... try some of these, but wait for each one to complete fully before starting the next one if you want acccurate times.

```scala
test(List(a, b, c))
test(List(c, b, a))
test(List(a, a, a))
test(List(c, a, a, a, a, a, a, a, a, a, a, a, a, b))
```