Added the 'applying' template.

Template template parameters cannot be easily passed to algorithms
unless these algorithms are wired up properly to accept such parameters.
This commit makes it so that one does not need to write an oprt_apply
metahandler in a separate class / class template to the algorithms.

An example:

    #include <cstdio>
    #include <clause/ample/vector.hh>
    #include <clause/ample/fold.hh>

    using namespace clause::ample;

    template<typename A, typename B>
    using add_squares
        = add<mul<A,A>,mul<B,B>>;

    int main() {
        printf("%lu\n"
              , foldl< applying<add_squares>
                     , natural<0>
                     , vector<natural<1>,natural<2>,natural<3>>>::value );
        return {};
    }