Fix subtle bug in curried_fn's curried operator().

Because the parameter pack 'Args' was an inferred reference type, the
curried_fn object returned when passing less than necessary arguments
sometimes had an undesirable type, such as
'curried_fn<fn-type,const int&>'.

Argument types are now stripped of const, reference, and volatileness
when selecting the type of the returned curried_fn.
'inner_type' type function no longer undefined for non-parametric types.

In rare cases, ADL would attempt to instantiate one of the
FTL-operators (such as applicative operator*) to check if it was
applicable in some case where a non-parametric type was multiplied or
similar. This would eventually cause an 'inner_type' lookup for the
given type.

Because 'inner_type' was not specified for non-parametric types,
this resulted in a compile error, even though SFINAE would have made
sure the correct operator was selected in the end.

'inner_type<T>' now returns 'T' for non-parametric types.