Support plugins extending Webpack build pipeline; Build translations from openproject-translations

This PR concerns itself with two related, but separate themes:

### Support plugins extending Webpack build pipeline
https://community.openproject.org/work_packages/5697
https://community.openproject.org/work_packages/17241

#### Notes for review:

* Webpack will not bundle plugins (and fail silently) if a `Gemfile.lock` is inconsistent (for example, if there are conflict makers). I'm not how/if we should make this more obvious.

* Shelling out from node to Ruby is currently done **synchronously**, which is not really _the node way_, but I wasn't really sure how to handle callbacks in the webpack config.

###  Build translations from openproject-translations, if available
https://community.openproject.org/work_packages/14679

#### Notes for review:

* You can specify an `OPENPROJECT_TRANSLATIONS_ROOT` if you want to
  test this PR without adding openproject-translations as a dependency.

  e.g.

        OPENPROJECT_TRANSLATIONS_ROOT=../openproject-translations webpack -c`

---

See also 
* finnlabs/openproject-backlogs#114
* finnlabs/openproject-costs#115
@myabc what is intended to happen with that output? Why is it required to write to stdout? Why can't the loader of that file not handle all of this internally?