GDB v2

Second iteration of the GDB (interactive) work. Lots of bugs found and fixed during v1, as summarized bellow.

For good or bad, one gray area (input and output of the debugged binaries) has been settled, but as a caveat/limitation. Its proper support depends on extra work, as explained in the documentation.

Diffstat:
```
 avocado/gdb.py                                     | 16 +++++---
 avocado/utils/process.py                           | 27 ++++++++++---
 .../all/unit/avocado/utils_process_unittest.py     | 13 ++++++
 tests/gdbtest.py                                   | 39 +++++++++++++++---
 tests/gdbtest.py.data/return99.c                   | 47 +++++++++++++++++++---
 tests/gdbtest.py.data/segfault.c                   | 10 ++++-
 docs/source/DebuggingWithGDB.rst                   | 36 ++++++++++++++++++++++++++++++++++++
 docs/source/index.rst                              | 1 +
 8 files changed, 167 insertions(+), 22 deletions(-)
```

Change Summary (mostly rolled into earlier commits):
```
gdbtest: beef up segfault.c to avoid compilation warnings
gdbtest: introduce tests for process exit status
avocado/utils/process.py: be forgiving with non existing breakpoints
avocado/utils/process.py: add a method to properly parse the exit status
avocado/gdb.py: add ignore_error option for set_break
tests/gdbtest.py: disable optmizations for compiled binaries
tests/gdbtest.py: remove unused module
avocado/gdb.py: fix passing arguments when running binaries in GDB
avocado/utils/process.py: exit status should always be an integer
Fix for always setting breakpoint as "main"
GDB: add documentation about the feature, caveats and workarounds
```