Have AbstractTrack marshall/unmarshall using JAXB.

Additional attributes are added manually using get/restore persistentState.
It would be convenient to simply annotate everything, but there are some issues. The tracks are actually loaded from Resource elements, JAXB insists on creating its own instances either from a no-arg constructor or static factory method. We used the latter for AbstractTrack, not sure if it will extend well to other Track implementations.