Remove Cartridge->CartridgeRepository dependency for path setup

Feed the Cartridge object an optional 'repository_base_path' which can
be used internally for the Cartridge to construct its own repository path
without requiring a dependency upon the CartridgeRepository.

This helps maintain test and v1 path compatibility by allowing the Cartridge
objects to be instantiated absent the use of the CartridgeRepository.
Refactor Endpoints to support frontend mapping
Merge pull request #1644 from ironcladlou/dev/v2carts/endpoint-refactor

Refactor Endpoints to support frontend mapping