Shlink data manipulation
Userland implementations of some data manipulation helpers extracted from ramda, while decoupling Shlink projects from that library.
The helpers are not design as in ramda, with a second optional argument and returning a curried function in that case.
Instead, they all expect all the arguments from the beginning and return a computed result.