elf: fix .eh_frame parsing, add expert info for bad CIE length

Fixes, matching LSB 4.1[1] and the AMD64 ABI[2]:
 - Multiple CIE entries can exist after the first one. Introduce a CFI
   subtree and add CIE and FDE records below it. Merge comon parsing
   functionality of CIE/FDE. A CIE terminator is treated specially, and
   added instead of a CFI subtree.
 - Validate the header length before using it to avoid a dissector
   assert. This condition is triggered by a binary produced by a buggy
   gold linker[3].
 - Add two expert items: one to detect an invalid CIE length (too small
   or too large) and one to detect a segment which is larger than the
   CFI records (to catch the gold linker bug[3] where the segment begins
   with zeroes).
 - Do not overload the elf.eh_frame.length field with the value of the
   Extended Length, instead use elf.eh_frame.extended_length (likewise
   for FDE).
 - Stop tracking the subsection size with another variable
   (remaining_length), just store the end of the entry.
 - Fix typos in descriptions, improved / shortened field descriptions.

Tested with the 'bad' and 'good' binary from bug 10726 as well as the
'a' binary from bug 8818 (which introduced this code). Decodes properly.

 [1]: https://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
 [2]: http://www.x86-64.org/documentation/abi.pdf
 [3]: https://sourceware.org/bugzilla/show_bug.cgi?id=17639

Bug: 10726
Change-Id: I523600b8141bd8953ae468051a57357ab199a258
Reviewed-on: https://code.wireshark.org/review/5488
Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>