Add 'trebuchet' package provider and role.

* Introduce a new 'trebuchet' module. Yes, we have 'deployment', but it needs
  to be cleaned up, so I'd like to migrate it piecemeal into 'trebuchet'.
  Ideally, the trebuchet module would be an exact copy of upstream, if Ryan
  accepts my patches.
* Add a Trebuchet package provider.
* Add a role that sets the Trebuchet deployment server. (Yes, this duplicates
  some logic from role::deployment, but the rationale is the same as above.)

Examples:

    # Ensure the latest deployed tag is checked out.
    package { 'scap':
      ensure   => latest,
      provider => 'trebuchet',
    }

    # Ensure a checkout exists, but don't update it automatically
    # if it is out-of-date:
    package { 'eventlogging/EventLogging':
      ensure   => present,
      provider => 'trebuchet',
    }

    # Clear the deployment_target grain for this target, but leave
    # any existing checkout in place:
    package { 'scap':
      ensure   => absent,
      provider => 'trebuchet',
    }

    # Clear the deployment_target grain for this target, and purge
    # the checkout from disk:
    package { 'scap':
      ensure   => purged,
      provider => 'trebuchet',
    }

All standard metaparameters are supported, so Trebuchet-deployed packages can
notify / require / subscribe / etc. other resources, and vice versa.

The package provider manages the deployment_target grain, so it obsoletes the
'deployment_target' resource.

Bug: 59931
Change-Id: I21e55f3d7b568fec44cd018e3ca967c0c418001d