Fix issue where functions type parameterized on Data (or its subtypes) that use Muxes (e.g. MuxCase, MuxLookup) would only ever bind to the generic Mux constructor (and thus bypass special cases) by removing special case constructors and moving the special case into the generic constructor. The only current supported special case is using a UInt as last-resort when tc and fc both derive from Bits. (Future adjustments will consider use of a 'Muxable' typeclass for the Mux constructor in order to refine and extend special cases. However, this investigation is currently deferred.)