add callbacks to Breakpoint objects

Also added a hit() function, that is getting called when the breakpoint is
being hit.
invoke breakpoint callbacks when being hit

The GDB object now stores the set breakpoints and parses the gdb output for
the event of hitting a breakpoint. When the breakpoint is hit its hit function
is called, which invokes the callback function if present.
add enum with Signals
add ability to set callback handler for signals

For example to set a callback function for segmentation faults call
set_signal_callback(Signal.SIGSEGV, callback_function) on your GDB object.
Once gdb encounters the defined signal the callback function will be called.