fix(exception): Fix reserved values

- Document all parts of this complex code.
- Present clearly that there are reserved values for the exceptions that
  must be respected for the module to function correctly
- When allocating or raising an exception with reserved values the
  module aborts, otherwise it would cause unexpected behaviour. The
  module prints an error message an the backtrace so the user can find
  where the wrong call was made.

Signed-off-by: George Boumis <developer.george.boumis@gmail.com>