Fixed fwrite() error behaviour.

Closes #1909
Closes #1910
Github Author: Camillus Gerard Cai <cgcaiqxcg.net>

Reviewed By: @fredemmott

Differential Revision: D1210786
add could_include to Hack

I was going to kill this function, but @markw65 said it will be useful to the community if they don't have an autoloader. Lets open source it then.

Reviewed By: @elgenie

Differential Revision: D1218801
Enable ExtraOptPass when BytecodeControlFlow is on

This works as of D1233662.

Reviewed By: @ottoni

Differential Revision: D1234803
Dont use rAsm implicitly in x64Assembler

This removes the implicit uses of rAsm from X64Assembler,
and moves the definition to abi-x64.h.  Some mentions of
rAsm were hoisted, but most involved doing stores, so those
were converted to store two 32-bit immediates (without
using a scratch register) when possible.

The Immed wrapper class now only allows 32-bit immediates,
and a new Immed64 wrapper is available for immediates whose
compile-time-type (vm-compile time) is 64 bits.

Reviewed By: @ottoni

Differential Revision: D1224706
Fix a couple bugs with large immediates.

In one case we simply wrongly assumed that a TC address would
be in low memory, which is not guaranteed.

The other bug is when we have a CG function for an opcode, *and*
that opcode is in the native call table.  Typically the CG function
is emitting an inline fast path and falling back to a call.

mayUseConst was eagerly whitelisting such opcodes too soon; we
should get through the switch block for special cases before
whitelisting native call operands.

Reviewed By: @markw65

Differential Revision: D1241128