Add composite function (overcomposite/gravity)

With tests and explanation in readme