OCSADV-154 target analysis

This is kind of random. I needed to write a little program to gather some stats on the target types we were using, and in the process relocated the `edu.gemini.shared.util.immutable` ↔︎ Scala conversion syntax and added another `parseDocument` overload to `PioSpXmlParser`. 

Just to confirm, this needs to go into the **develop** branch; it's not for December.
Yeah, can't do it with a `val` because of the quantification. Unlike in Haskell, you can't have universally quantified values in Scala, so there is no such thing as a function value of type `forall a. a → a` ... if there is a type parameter it has to be a `def`.