Solve "unknown type name ‘off64_t’", issue #166
Merge pull request #167 from jperelli/patch-1

Solve "unknown type name ‘off64_t’", issue #166
rewrite_driver_factory: move instantiation up front

We need to have the NgxRewriteDriverFactory available at configuration parse
time to set options on it. This change moves instantiation of the factory in
front of configuration parsing.  Afterwards, a check is done to see if we where
enabled anywhere.  If we where not enabled / do not have any active server
contexts, the NgxRewriteDriverFactory is deleted. It's not very elegant, but we
can't think of anything better currently.

Squash merge of Otto's #165.
message-handler: Add NgxMessageHandler

This adds an NgxMessageHandler, that uses ngx_log_error to output messages. It
is heavily based on apache_message_handler from mod_pagespeed.

It falls back to an internal GoogleMessageHandler if the required initialisation
has not been performed yet.

It can also install a crash handler, that will try to log a backtrace upon
receiving certain signals. In preparation of us porting /ngx_pagespeed_messages,
it also keeps the last few messages in a SharedCircularBuffer

(Squash-merge of Otto's #163)
Add /ngx_pagespeed_statistics

This adds /ngx_pagespeed_statistics. It also uses SharedMemoryStatistics instead
of the SimpleStatistics currently used, and sets them as the default. It also
adds support for tracking per server{} statistics.

Cleaning up of shared segments is disabled, because the current psol version we
link in has a problem with the ordering of nginx's events during a configuration
reload.

The referrer statistics will be ported in a separate pull.

Related to issue #133

Squash-merge of Otto's work in #176.
ngx-pagespeed-message: wire up ngx_pagespeed_message url

This allows viewing the last few messages written to the SharedCircularBuffer in
NgxMessageHandler through url /ngx_pagespeed_message

Related issue: https://github.com/pagespeed/ngx_pagespeed/issues/153

Squash-merge of Otto's #180.
shared-mem-locks: clean up shared memory segments

This wires up cleanup code shared memory segments.
It uses slightly modified copies of pthread_shared_mem.cc/h, containing a change
proposal to support our ordering of events during a configuration reload.

It can be tested and reviewed through this branch.

I did some extensive tests, it seems segment cleanup is not perfect yet
(segments for named locks, per vhost statistics segments). I think we need to
fix that in the trunk-tracking branch or in a separate pull though. It seems the
current trunk of psol has improvements that may fix this, and fixing it in this
pull will make it larger and more complex then I would like it to be.

Squash-merge of Otto's #179.
Merge branch 'master' of git://github.com/pagespeed/ngx_pagespeed into morlovich-trunk-tracking-with-system

Resolves quite some conflicts by hand, so rather error-prone.
SHM metadata cache support.

This will eventually get removed, too, in favor of generic code.
Note: the cache needs to be fairly large to pass the tests.
Quick hack to not violate the ODR.

Having two classes with the same name in a single ELF binary is
extremely risky.