Add new v2 APIs

This is the beginning work for the v2 APIs that were released recently. They use a new request object model that takes two generic parameters, the first being the ID type for the endpoint and the second being the result type when returning an ID/List of IDs.