iproute2: static compile.

Now that we've reverted most ANDROID specific patches,
we need to actually make it build correctly.

This switches on NO_SHARED_LIBS (due to issues with dlopen/dlsym)
and enables tons of things, plus it mostly sorts the build files
- they can't be fully sorted because link order affects symbol resolution.

Things that still aren't enabled in ip/Android.bp:
(bonding due to use of 'strdupa' stack string allocation,
 and rtmon is an entirely separate binary)

Things that still aren't enabled in tc/Android.bp:
(various compile problems, missing headers, etc)

We also check in {ip/tc}/static-syms.h built via:
  rm -f {ip,tc}/static-syms.h
  touch config.mk
  SHARED_LIBS=n make -C ip static-syms.h
  SHARED_LIBS=n make -C tc static-syms.h
  rm -f config.mk

and check-in yacc/lex output built via:
  rm -f tc/emp_ematch.yacc.output tc/emp_ematch.yacc.h tc/emp_ematch.yacc.c tc/emp_ematch.lex.c
  touch config.mk
  YACCFLAGS='-d -t -v' make -C tc emp_ematch.{yacc,lex}.c
  rm -f config.mk
which require bison/flex.

Furthermore we update .gitignore files to allow submitting these
build outputs.

Longer term we should probably make it actually generate these
during the build.

Only files which were manually edited were the three Android.bp files
and two .gitignore files.  The other six are autogenerated (see above).

  this exposes incompatible with userspace api kernel change:
    commit abb705d4ef835b637e0213f34a6fe991f8c273db
    'net_sched: Add flow control support to prio qdisc'
  which includes:
    struct tc_prio_qopt {
      int     bands;                  /* Number of bands */
      __u8    priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
  +   __u8    enable_flow;            /* Enable dequeue */
  and results in:
    !!!Deficit -4, rta_len=48  (if enable_flow == 0)
    !!!Deficit -3, rta_len=48  (if enable_flow == 1)

Bug: 65674744
Signed-off-by: Maciej ┼╗enczykowski <maze@google.com>
Change-Id: I0af6a8c1f8aede2e999a41a48038cb4e167d481c
11 files changed