numeric algorithm adjacent_difference

I wasn't paying attention when `Addable` and `Multiplicable` when in. These aren't real concepts as they don't describe anything semantically meaningful. They are pure syntax. And looking at where they are used in functional.hpp, they are also unnecessary (comments below). Best to get rid of them.