E-commerce actions tracking

This PR contains integration of features for tracking checkouts, products added to the cart and products removed from the cart. The involved trackers are GTM, Ad4Push and Adjust. Models have been created in order to map information and share them among different trackers. Related tests have been added as well.
If container is not available, we can add to a pending event queue for GTM, so we can use a code like this for every push event

     private void sendEvent(Map<Object, Object> event) {
        if (isContainerAvailable) {
            Log.i(TAG," PUSH DATA");
            dataLayer.push(event);
        } else {
            pendingEvents.add(event);
        }

    }