add RingBuffer for storing log messages

First step to foolscap-style logging!
add RingBuffer#flush

Currently flush locks the buffer during the entire loop instead of
once for each element. This may cause pauses when appending but keeps
the buffer from wrapping around during the flush.
add IncidentLogger and supporting classes

For now IncidentLogger is single progname only. This will probably
change.
Undo BasicObject based ActorProxy change

* BasicObject breaks all sorts of things
allow multiple prognames per logger

This allows an incident to include logs from mulitple facilities. It is
also closer to the ruby Logger api.
publish to a progname topic

In case anyone wants to filter incidents by progname.
use a Logger to write incident events

Includes a custom formatter that uses the event time instead of the time
given by Logger, which is likely to be inaccurate as most events
actually happened in the past.

The actual format of the log output is the same as the default.
Event#time instead of #timestamp
pass args into wrapped Logger instance
use IncidentLogger as Celluloid.logger

IncidentLogger needs to be started after the fanout actor.

IncidentLogger should also be one of the last actors to shut down,
otherwise shutdown messages are lost.
[BUGFIX] Make pool size accessible
Merge pull request #90 from benlangfeld/master

Remove BasicObject from ActorProxy inheritance tree
Disable rbx on travis due to fiber-related crash
Notes on reverting BasicObject proxies
Changes
Notes on removing Celluloid#alive?
rename Event to LogEvent

Event is too vague. This class is really only for log messages.
missed a rename
if logger doesn't respond to alive?, don't send it
make IncidentLogger a plain old ruby object

This may be reverted eventually, but as I'm trying to fix test failures,
it seems that having the logger itself be managed by the system it's
trying to log is going to cause trouble.

The only change to IncidentLogger itself is the addition of a mutex
around the ring buffers. The only functionality removed is the ability
to log messages asynchronously, but there probably isn't much need for
that.

IncidentReporter is still an actor, as it needs to subscribe to
notifications and only actors can do that.