Framework for all agreements.

Can be the base for a complete codification of contract.

In an attempt to be really systematic about naming, this uses AGT consistently to mean agreement.

Please consider naming issues - is this the best approach?  Are there other approaches?  Will this approach work in other languages?