Send transaction

Adding a sendTransaction method, which handles the **ecommerce** plugin side of our analytics logging.

The approach I took was to make it easy for developers to add this information, and the method ensures the calls are formatted correctly with:
- the correct transaction ID for both the transaction and the items
- required fields are validated
- parameters are stringified

It also ensures that if errors occur, the user is given immediate feedback via error messages.

Status: **Ready to merge**

Reviewers: @tedtate @donnielrt @ericmuyser 
JIRA: https://mobify.atlassian.net/browse/CSOPS-852

## Changes
- added sendTransaction method
- added __validateObjectSchema method
- added __stringifyPropertyValues method
- added unit tests

## How to test-drive this PR
- checkout this branch
- run `grunt test`
- integrate into project that has ecommerce:addTransaction and ecommerce:addItem already, and ensure this works.

This is totally different. When you make a call to GA, it's a black hole. It doesn't give you feedback as to what was not included. I want our devs to be able to react immediately if their data is wrong. 

I just spent a while going over analytics with our engineers, and everyone's doing it differently, has a different idea of what's correct, and couldn't tell you what is required and what isn't. This is aimed at solving those problems.

I've spent some time speaking with Amanda, and we determined that there is certain information that we have decided we want required. GA doesn't require all that we do, so this function also ensures that **our** required parameters are included, and validates their format.