Compose Function

## Description

Adds a `compose` function that lets you pass in a source object and a mapping object. This lets you take one object and transform it into a new schema more suited to the current need. 
This seems right to me... I took it right from the very first passing unit test.