Add compiler sanitizer options
This set of commits is an updated version of #77. It adds three sanitization options:
- Undefined Behaviour
- Address Sanitizer
- Memory Sanitizer
These still don't work on Travis, but work perfectly fine locally. As mentioned earlier, the version of GCC on Travis is too old to support these options. While with Clang, for some reason, configure simply does not enable these options. I'll take a deeper look into why this happens later. However, these commits should still be reviewed and merged on their own.
Closing #77 in favour of this branch