Move entity store methods into new Workitem class

WorkitemEntityStorage now delegates to a Bumbleworks::Workitem instance
created using the including object's workitem.  This also allows us to
explicitly ask a workitem for its perceived entity, which comes in
handy when we need entity queries on flow expressions... also, change
Furby to RainbowLoom to stay hip.
Add entity lookup to Bumbleworks::Process

This is a little trickier than Task or Participant entity lookup, since
a running process may have multiple workitems (in multiple active
leaves of the workflow).  The design here is that if all leaves agree
on which entity is represented, that entity will be returned - otherwise
an EntityConflict exception will be raised.
Task finder - add with_fields and #where shortcut

Using Task::Finder#where lets you specify several options in the same
method call - this is just a shortcut and does the same thing as
chaining the specified methods.  In fact, it can be combined with method
chaining.  The #completable query also gained an inverse option (send
false as an argument).
Specify extra fields/variables on process launch

Now, when calling #launch_process on a Bumbleworks::Entity, you can
specify additional fields and variables to be sent to the launch
method - these will be merged with the return values from process_fields
and process_variables.  Also, refactored the entity module, mostly
insignificant, but the important change is that :column is replaced with
:attribute, so if you override the persistence attribute, use that key
instead.  This is done to reflect a lack of dependency on any specific
form of persistence.
Bump version to 0.0.52