Make Source and Target simply be whatever AnyRef is passed in rather than types.

This simplifies the model and eliminates wasted memory allocations (which matter on Android).