ESSENTIALS-445: Extract plugin-unrelated code into ProjectResource. Adjust resource paths to a consistent pattern. Mark API resource paths in swagger and app.js.