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.

Agreed!

I'm also hoping this just makes it easier to make dependable GA calls. Also, not waiting until the calls are made and we check 24 hours later if the data is getting logged is more appealing to me. 

So long as we ensure our format is correct, we can make a fairly educated guess that GA is going to handle the data correctly.

Make sense?