libipt, ild: add bounds checks

While decoding Linux kernels the decoder for some reason ended up
between two instructions, and then segfaulted.

ffffffff815da7d2:       49 c1 ed 08             shr    $0x8,%r13
ffffffff815da7d6:       49 89 c4                mov    %rax,%r12
ffffffff815da7d9:       48 8b 83 d0 00 00 00    mov    0xd0(%rbx),%rax
<------- ended at d8, crashes
ffffffff815da7e0:       48 89 83 98 00 00 00    mov    %rax,0x98(%rbx)
ffffffff815da7e7:       e8 64 9d b0 ff          callq  ffffffff810e4550

The crash was because it referenced map tables with an out of bounds
map value.  Make sure ild->map is always valid and extend the tables
to contain an entry for PTI_MAP_INVALID.

Change-Id: I0e60dd366786efb55e1eb95d10099ccbc5ae5f86
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>