make Bijection/Injection not extend Function

Addresses #119 
I think this makes bijection safer, but keeps source compatibility for all cases other than the unintended implicit conversions.