Factor out method lookup
Make eval_each actually eval each
Dispatch now works with values and abstract types

Unfortunately, I'm still using association lists. I couldn't use khash
because my equality function (sl_equals) takes three arguments (state,
val1, and val2) not two.