showbc: Make code object start pointer semi-public.

This allows to pring either absolute addresses or relative offsets in jumps
and code references.
showbc: Print operation mnemonic in BINARY_OP.
py: Add MP_LIKELY(), MP_UNLIKELY() macros to help branch prediction.
docs: Bump version to 1.3.8.

Should have done it before tagging...
py: Add note about -fno-crossjumping when compiling vm.c.
py: In VM, for selective ip saving, store 1 byte past last opcode.

This is for efficiency, so we don't need to subtract 1 from the ip
before storing it to code_state->ip.  It saves a lot of ROM bytes on
unix and stmhal.
py: Add include guards to mpconfig,misc,qstr,obj,runtime,parsehelper.
run-tests-exp.sh: Typo fix in comment.
py/asm*.c: Typo fixes in comments.
emitnative: Incomplete implementation delete_fast operation.
py: Basic implementation of hotpath recording.
modffi: Support open own executable using open(None).
modffi: Support return values of mp_obj_t type.
unix: Support readline history saving to file, improves interactive usage.
modffi: Add .addr() method to just get symbol address.
binary: Rework array accessors. They work with native, not stdint types.
modffi: Add toplevel func() function to create a function by pointer.
py: Partially fix float to int conversion.

This fixes conversion when float type has more mantissa bits than small int,
and float value has small exponent. This is for example the case of 32-bit
platform using doubles, and converting value of time.time(). Conversion of
floats with larg exponnet is still not handled correctly.