Clear the locals vector in FrameState when translating a block with an unprocessed predecessor

Summary: We were clearing the snapshot in FrameState, but not FrameState::m_locals.

Reviewed By: @ottoni

Differential Revision: D1409019
Cleanup mcg creation/deletion

Summary: We recently added a call to mcg->code.unprotect(), with no
explanation of why it was needed, leading to a long debate. This moves
it to a more appropriate place, and adds a comment to explain why
its there.

We also weren't ever deleting JIT::mcg, even though its destructor does
real work (such as deleting the perf-pid.map file, if requested), and also
freeing memory (which will help with leak detection).

Reviewed By: @swtaarrs

Differential Revision: D1424033