Change type tags to a trait 

Change type tags to a trait holding the tag, as this works better than a type member for implicit search.

(Note: I didn't make the tag trait extend Any, simply because my limited probing with javap didn't suggest using a universal trait made any difference to boxing outcomes.)