Revert "More forgiving thread local hacks"

This reverts commit c200845061447c010ca7e6e8069fe400c56a0427.
Revert "Actor-local Celluloid::Thread#[] support"

This reverts commit 395a6dff992a16609baa94331b50c4848678967d.

Conflicts:
	lib/celluloid/thread.rb
Reapply custom Thread methods
Merge pull request #268 from celluloid/revert-actor-locals

Revert problematic Actor-locals
Bump version to 0.15.0.pre
Remove unused Task#name accessor
Use a hash for Task metadata
Log discarded messages inside Actor and on Mailbox shutdown. Fixes #277
Log a warning on initialize and finalizer suspending
Raise an exception when shutting down a mailbox successively

Fix the exception class in Celluloid.shutdown
Rename tasks to waiters in Condition

Remove unused Condition#owner reader
Add pry to Gemfile
Share the thread-pool queue between TaskFibers
Optimize TaskSet

The previous implementation of TaskSet was undesirable for a number of reasons:
simply to avoid the problem of concurrent access during StackDumps, it allocated
not only a new Set object each time tasks were added or removed, but also an
array. By copying every time the data structure was modified, this
implementation could take advantage of the fact that instance variable
modifications are "volatile" (in the Java sense) and provide some degree of
thread safety.

There's a much better approach we can use: locks :O

This implementation uses JRuby::Synchronized, a magical JRuby module which
effectively adds Java's "synchronized" to our class definition. This also lets
us take advantage of the fact that uncontended locks are cheap (Linux's futexes
are effectively "lock-free" when uncontended)

On MRI, the Set contant is bound to TaskSet, and we can depend on implementation
errata (i.e. the GIL o_O) to take care of synchronization for us.

This does leave the matter of Rubinius and other Ruby implementations like
IronRuby which don't have a GIL. I will consult with a few implementers of these
Rubies as to what the best solution is here.
Synchronization support for Rubinius
Merge pull request #280 from celluloid/task-set-revamp

Optimize TaskSet
Reset the logger before shutting down in each spec
Always create a Task regardless of the Actors exclusives

This change means that we need a new concept to distinguish the old
behavior which did not create a Task, but instead gave users direct
exclusive access to the actor Thread.
Remove deprecated finalizer code
Merge pull request #281 from celluloid/exclusive-task

Always create a Task regardless of the Actors exclusives