refactor reuse mechanism

Previously the req->url field was checked for NULL to determine whether
it was necessary to free the memory of the struct fields that were
dynamically allocated so the req_t struct could be reused cleanly. This
required that the req_t struct be assigned to a completely NULL struct
that was declared in the header as `REQ_DEFAULT'. This was sort of messy
so an improvement I added was a simple global variable that contained
the boolean state of whether this was the first request or not.
update tests

update tests for new library usage that does not require initializing
req_t's to REQ_DEFAULT before use.