Fix #804: Delay protect() mechanism until desugaring, no JSDotSelect.

This is an alternative to #806 where I previously remove the last two remaining `JSDotSelect`s emitted by the compiler from the IR. They are converted to `JSBracketSelect`s at deserialization time for binary compatibility.