Remove the Essential flag in favor of a switch statement

Summary: The Essential flag and IRInstruction::isEssential are DCE-specific
pieces of information, so this diff moves that information where it belongs.

Reviewed By: @jdelong

Differential Revision: D1752612