Don't compile with optimizations when debugging
Don't start/stop byebug for every test
Don't run minitest through an at_exit hook

Rationale:
- http://blog.arkency.com/2013/06/are-we-abusing-at-exit/
- It makes it impossible to test byebug's post mortem mode, as it is
defined through another at_exit on top of minitest...
Fix thread list information on non-current threads
Fix 'thread list' showing too many threads
Cleaner tracing of global variables
Don't print backtrace when catching exceptions
Can't keep state in a global variable anymore

Byebug now supports threads so we need to keep one state per thread, a
global variable doesn't work
Minitest::Spec doesn't support multiple threads
Fix some breakpoints incorrectly set
Fix source test in post mortem mode
Use File instead of FileUtils
Fix method name in comment
When exception in test block, reraise in the end
Fix next/step block behaviour
Limit post_mortem's mode functionality

- Don't allow post_mortem mode with a block
- Don't allow break, delete, condition, display, reload commands in
post_mortem mode
- Only allow global mode (set post_mortem) for classic post_mortem
functionality (backtrace & variable inspection) but remove the rest
of the fancy stuff.

The reason for this is that I find that functionality hard to mantain
and keep working and that I never use it.
Don't see the point on doing that in the C-ext