Refactor Consumer code.

    Common code from pgq.Consumer goes into new pgq.BaseConsumer, pgq.Consumer and pgq.LocalConsumer are now subclasses of pgq.BaseConsumer and pgq.Consumer adds retry api/logic.
    pgq.Event code is now split between pgq.Event and pgq.RetriableEvent.
    These changes reflect the fact that pgq.LocalConsumer should not be allowed to use retry logic.
CascadedConsumer is now also subclass of BaseConsumer (does not allow retry)
Fix basescript docstring
Store naturaldocs customizations in tree.

Now unpatched naturaldocs should work fine.
Move more of retry logic away from BaseConsumer/Event classes
Merge remote-tracking branch 'petr/consumer_refactor'
pgq.event: __slots__ cleanup
BaseScript: skylog_locations config options

This allows to specify per-script skylog.ini