remove external includes from public worker.h

The other components don't care about these includes.  Move them into
worker.c
move cache_init_node out of cache.h

It is not used anywhere but internally to the cache handling code.  Move
into cache.c and make it static.
move cache_create_node out of cache.h

It is only used internally.
kill cache_get_nodes.  it is unused.
move cache_free_nodes out of public cache.h

Also, make it static, as it is only used internally.  Move it's
definition above cache_free to eliminate the need for a forward
declaration.
move cache_node definition into cache.c

This definition is an implementation detail of the cache, and is not
relevant to other components.  Move it's definition to cache.c.
remove config_load_default from config_file.h

It is only used internally.  Mark it static in config_file.c.  Move
config_init() below it to make a forward declaration unnecessary.
turn the default configuration into data

This is arguably cleaner, and allows for config_default_init to be a
simple assignment.
move config_save_value out of config_file.h

Make it static within config_file.c.  Rework order of functions in
config_file.c
Move implementation-specific includes into connection.h
move connection_init into connection.c

It is only used there.  Remove it from public API.
move implementation-specific defines into events.c
move implementation specific includes into lock.c
remove mime_types_add from public header

It was misspelled anyway!  Make mime_types_add static.
move strtolower, request_init out of public API

They aren't currently used anywhere except in request.c.  Make them
static there.
add sys/stat.h to includes for umask() definition
move implementation specific includes into response.c
move response_init out of public API
remove response_build_http_packet helper function out of public API

Re-arrange response.c a bit to avoid forward declaration.
remove response_read_file helper out of public API