Adds utilization of the ServiceResource struct to all
of the path package functionality. In general, this
takes most instances where a service and resource
are requested, and replaces those values with a
slice of ServiceResource tuples.
To keep the review smaller, this change does not update
any packages outside of path. Therefore the tests and
build are guaranteed to fail. The next PR, which
updates all other packages with the changes, is
necessary for both PRs to move forward.
small cleanup in paths, primarily splitting files
so that file contents are more clearly owned, which
should be a little better for readability and code
placement.
Also renames `ServicePrefix` to `BuildPrefix` in
anticipation of multi-service prefixes.