[memaccess/linux] Fix NextReadableMemoryRegion
[memaccess/linux] Fix NextReadableMemoryRegion

A detailed explanation of what was fixed and changed, in chronological
order:

    - Several errors where raised in the test because of not ignoring
      unreadable regions. Added as it was a simple test.

    - [vsyscall] mapping was giving errors while trying to read it.
      I googled about it, and it turns out to be a special page always
      mapped by the kernel to optimize some simple syscalls. It can't be
      read so we ignore it.

    - Line splitting was handling errors incorrectly. We only know how to
      parse the current format of the mappings, if it changes this
      program will break, and it'd be better if it breaks in a
      predictable way. In order to do that I changed the split to a
      regexp based one splitting by several space characters, not just
      by one. This way items slice will contain only the non-blank bits
      of the mapping. Finally we check if the length of that slice is
      exactly the one that we were expecting, and if not, we return a
      hard error.

    - The interface says that contiguous regions are collapsed into one,
      and this logic was missing, which could break the algorithms that
      relay on this, so I added it.

    - We were reading unnecessary mappings from the maps file (not a big
      deal) and reporting any soft error that happened during this
      (which can be really confusing while debugging). To avoid this
      the address must be passed to getMappedAdresses, and it's
      intention would be changed to mimic exactly what
      NextReadableMemoryRegion is supposed to do, so I combined them in
      a single function.

    - Finally, mapInfo was representing exactly the same thing as
      MemoryRegion, so I removed the first and used public type
      everywhere.

mozilla/masche,mozilla/masche