Extract crate functionality from main functionality.

  - Create namespaces for api functionality and for tags
  - Change the main invication to pass along the project to the
    template for configuration
  - update the "Crate" template to take advantage of having access to
    the project