Major restructuring of ftl::function (and dependants).
Centralised monoid::operator^ implementation.