How to remove energy from inductor using semiconductors?
In general, you dissipate the energy in an inductor by allowing it to circulate it through a resistance.  In the simplest (single-ended) form, you have a 'flywheel diode', which just circulates the current through the inductor.   The dissipation occurs as Vf * I in the diode and Rl * I^2 in the inductor, where Rl is the resistance of the inductor.

The voltage of the 'bottom end' of the inductor rises to Vf above the supply rail during circulation, so doesn't impose much extra voltage stress on the rest of the circuit.

To cause the current to decay faster, you can add additional resistance in series with the flywheel diode.  This adds R * I^2 to your dissipation, but increases the overvoltage by IR volts, which is the trade-off.

Alternatively you can add a zener diode in series with the flywheel diode (but anode to anode) which allows the voltage to rise higher, and then dissipates Vz * I in the diode, while adding Vz to the over-voltage. 

Pretty much you're just trading-off voltage spike height against speed of dissipation.