WIP: add source contexts, remove debugger-only macros
* a 'struct nobug_context' is used to pass information about sourcefile
linenumber and function along.
* many macros have an additional *_CTX variant which takes such a context
(more to be implemented on demand)
* general refactoring to more basic cases, less code duplication,
prepare to move more things from macros to library functions.
* remove *_DBG variants which where only active when running under a
debugger, the flags mechanism provides more flexibility and
superseeded these.
* change the semantics of thread_id's, each thread gets on unique number
now which never changes. Resetting the thread identifier increments a
generation counter for the thread (currently unused)
* don't depend on gcc's ## __VA_ARGS_ semantics. Found a way to pass
""__VA_ARGS__ instead is portable, the only remaining case is
NOBUG_ASSERT_ which has a conditional fallback for other compilers
(and then don't print the failed expression anymore)
The above things are not yet in the documentation.