error.h: add a bug reporting function

Motivation:
	* it seems it can be reused quite a lot

Examples:
	* report_programming_bug("invalid pointer: %p", p);
	* report_programming_bug("we should not process BYEs here!");
lumps processing: a couple of performance optimizations

Since we can only have LUMP_DEL or LUMP_NOP along the main lump chain,
reordering the switch statements will improve code performance.

This patch also enhances code readability and improves error reporting.
data_lump.h: explicitly warn about some broken logic

Currently, append_new_lump() and insert_new_lump() are not used at all.
Moreover, it seems they would not work anyway.