WIP: Feature/#294 untangle hmd open vr
This is not necessarily finished, and may be just a proposal going forward (depending on the scope of the issue). Tell me what you think.
The phx::HMD was essentially split into its OpenVR functionality (phx::OpenVRUnit) and the head representation (phx::Head), which can also be used in a CAVE or a Non-OpenVR HMD implementation (the head representation doesn't actually do a lot, and I don't know how much sense this makes, as, e.g., its transformation would probably be accessed via a head entity). Similar things could/should be done with controllers, etc., although this also has to be revamped when we "solve" input.
phx::OpenVRUnit could also be generalized into an HMDUnit that is derived from, but I don't see us implementing Non-OpenVR-based HMD support any time soon.
@jwendt @mbellgardt