feat(assert): accessing non-existing header is UB

header_dict::operator[] used to throw out_of_range in this case,
in order to mimicking the Python behavior.  But this is a bad idea
in C++.

Similarly, undefined behavior is also triggered if libcurl
misbehaved.

Boost assertions are being used to "implement" the UBs (+2KB for
library binary built without -DNDEBUG), so that user can build this
library with their customized assertion handlers.