[config] support __builtin_expect LIKELY/UNLIKELY branch optimizations

add EXPECT,LIKELY,UNLIKELY macros to feature.h as in the linux kernel and perl5
probe for __builtin_expect() support in a new auto::expect configure step

Usage: if (UNLIKELY(var == 0)) fail();

Add emacs mode:c support for test_c.in files, and relax the coda test for this.
Should be used in all test_c.in files.
re-add PASM output to imcc, re-add imcpasm tests

one new IMCCompiler api method: set_to_pasm
remove static output in imcc/instructions.c
detect .pasm -o outfile extension
add and fix old t/compilers/imcc/imcpasm/*.t tests and the pir_2*_
  Parrot::Test methods
change Parrot::Test pir_2_pasm method to use -d1000, which is equivalent
  to pasm output, just to stderr.
use new LIKELY/UNLIKELY macros
enable pasm_out in parrot2, todo failing imcpasm tests

opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
[test] ignore TEST_PROG_ARGS -O2 for opt1.t tests
[cage] overlong line
[cage] update MANIFEST{,.SKIP}, .gitignore
[codingstd] add docs, ...
[cage] imcc/embed.h

error: nonnull argument references non-pointer operand
with llvm
[imcc] rename to set_write_pasm, revamp api

Improve docs of the imcc API

pasm_out:
Pass the outfile path to set_write_pasm, so that we can
initialize it emit_open. Since the lexer doesn't know the outfile name
check for NULL in the lexer called emit_open(). Already initialized earlier
by the frontend.

The new parrot needs to store the outfile for the pasm out api.