OCSADV-27: VoTable parser improvements

Several improvements to the VoTableParser and support for **ucac4** catalog output:
* The parser used fields to distinguish data pieces but it should really use just the **ucd**, a Field's name is not very relevant
* Parse magnitude errors
* Support magnitudes for IR bands
* Parse proper motion if available. An update to the `ProperMotion` class is included
* Fixes a case where **ucac4** returns a magnitude without a band (The value is ignored)
* Minor code formatting fixes
Note that scalaz gives you `.parseDouble` which gives you a `Validation[NumberFormatException, Double]` back. So you could say

```scala
s.parseDouble.leftMap(_ => FieldValueProblem(ucd, s)).disjunction
```

Doesn't really save you much here but might be useful in the future. It does have the benefit of only catching `NumberFormatException`.