Removed redundant class 'Function'.

It was equivalent to 'EnhancedCat (->)', so made it simply a 'ConstraintKinds' synonym.

Since 'EnhancedCat' is defined in the 'Arrow' module, so in 'Function' now.
Added 'alg1to2' and 'alg2to2' methods to cartesian-proxy class.

This de-necessitates explicit operations for e.g. direct sum of vector spaces.
Remove default implementations of 'fst' and 'snd'

to get rid of the somewhat awkward constraints 'ObjectPair (UnitObject k) a' there.