rename headers/headers_size struct field

- rename req.headers and req.headers_size to `req.resp_hdrv' and
  `req.resp_hdrc' respectively in order to differentiate between the other
  set of headers (request headers)
    - naming scheme influenced by argv/argc:
        `resp_hdrv' => "request header vector"
        `resp_hdrc' => "request header count"
- add `req.req_hdrv' and `req.req_hdrc' using same naming scheme for
  upcoming request header support
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.
update makefile, readme, examples

- update examples and README to reflect current state of library
- update Makefile to compile examples
Merge branch 'req_headers'