elf: Make lookup_addr() respect symbol size

This makes lookup_addr() to check that "addr" is within the bounds of
the "best" symbol symbol we found.

This should clean up backtraces such as the following that have
obviously bogus symbols (with very large offsets):

  [backtrace]
  0x000000000032282f <mmu::jvm_balloon_vma::split(unsigned long)+367>
  0x0000000000323632 <mmu::vm_fault(unsigned long, exception_frame*)+146>
  0x000000000036f939 <page_fault+105>
  0x000000000036e826 <ex_pf+34>
  0x0000100004400898 <main+80>
  0x00000000003d32db <osv::run(std::string, int, char**, int*)+507>
  0x0000100004007930 <run_elf(int, char**, int*)+128>
  0x0000100004007c0c <Java_com_cloudius_util_Exec_run+172>
  0x00002000006134b5 <???+6370485>
  0x00002000006061d3 <???+6316499>
  0x000020000060050a <???+6292746>
  0x00001000011ef168 <AsyncGetCallTrace+919944>
  0x00001000011eebc7 <AsyncGetCallTrace+918503>
  0x000010000144b6e7 <JVM_handle_linux_signal+463895>
  0x000010000144c837 <JVM_handle_linux_signal+468327>
  0x000010000123c542 <JVM_InvokeMethod+402>

Fixes #263.

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
pci: Add VGA classcode

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
vga: use PCI classcode on probe function

Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
pci: Add AHCI classcodes

Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
ahci: use PCI classcode on probe function

Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>