Group Policy API-3: Contracts

(Patch series identifier: GP-API-3)

This is the third API patch in the Group Policy series. It introduces the
Resource Model and API for Contracts.

In the context of the larger Group Policy Model, Contracts contain Policy Rules
and Endpoint Groups consume or provide Contracts. Policy Rule were introduces
in GP-API-2 patch, and Endpoint Groups were introduced in GP-API-1 patch (both
are earlier patches in this series).

The DB and Plugin layers to back the Contract resource  will also be introduced in
subsequent patches.

Partially-implements: blueprint group-based-policy-abstraction

Change-Id: I2b3ee58062e0e44a9090ee111adffda16f37524d
Author: Sumit Naiksatam <sumitnaiksatam@gmail.com>
Co-Authored-By: Bob Kukura <kukura@noironetworks.com>
Co-Authored-By: Stephen Wong <s3wong@midokura.com>
Co-Authored-By: Mohammad Banikazemi <mb@us.ibm.com>
Co-Authored-By: Mandeep Dhami <dhami@noironetworks.com>