Add the 'consume' machinery

As a sideeffect of setting resource parameters in
Puppet::Resource::Type#set_resource_parameters, look for a consumed
resource, first in the local catalog, and then in PuppetDB.
Add a capability to the model for a defined type (ResourceTypeDefinition)
Set a capability from the parser
Language support for consumes/produces annotation for a defined type

Note that quite a few existing tests needed to be changed because (a)
'produces' is now a keyword and (b) the internal representation of a define
in Pops has changed
Add a (very simple) test for the prototype

This test replicates the functionality of
https://github.com/lak/puppet/blob/prototype/master/capabilities/bin/xhost.pp
albeit by stubbing out the PuppetDB interaction.