refactor operator <<(HttpServerResponse) to be non-member

this design choice allow objects implicitly convertible to HttpServerResponse to
be used like stream operators too.
refactored IByteArray
the compiler should emit more types of warnings to decrease the number of
programming errors