SUBSCRIPTIONS_URL refactorings

The following discussion from gitlab!43812 should be addressed:

- [ ] @brodock started a [discussion](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43812#note_422480752): 

    > On a different note, I'm curious why we decided to start storing all those globals here instead of a more dedicated location. 
    > 
    > Looking at `SUBSCRIPTIONS_URL` usage, I found we are "building URLs" all over the place, literally hard-codding and concatenating things when needed with at least 28 matches. It suggests me that we should move those to a dedicated place.
    > 
    > An obvious refactor here could start with moving constants to another level and building URL specific methods:
    > 
    > ```ruby
    > module EE
    >   module Subscriptions
    >     SUBSCRIPTIONS_URL = ENV.fetch('CUSTOMER_PORTAL_URL', ::Gitlab.dev_or_test_env? ? 'https://customers.stg.gitlab.com' : 'https://customers.gitlab.com').freeze
    > 
    >     def self.customer_portal_url(path)
    >       "#{SUBSCRIPTIONS_URL}/#{path}".freeze
    >     end
    > 
    >     def self.customer_portal_more_minutes_url
    >       custmer_portal_url('buy_pipeline_minutes')
    >     end
    > 
    >     def self.customer_portal_more_storage_url
    >       custmer_portal_url('buy_storage')
    >     end
    >   end
    > end
    > ```
    > 
    > and so on

### Availability & Testing

<!-- This section needs to be retained and filled in during the workflow planning breakdown phase of this feature proposal, if not earlier.

What risks does this change pose to our availability? How might it affect the quality of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing?

Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance.
* Unit test changes
* Integration test changes
* End-to-end test change

See the test engineering planning process and reach out to your counterpart Software Engineer in Test for assistance: https://about.gitlab.com/handbook/engineering/quality/test-engineering/#test-planning -->

As this refactor is recommending a nice generic library to determine the URLs, a unit spec should accompany the new module to ensure quality.

- If CUSTOMER_PORTAL_URL is set to `the_url` ... `EE::Subscription`
  - `#customer_portal_url('/test')` is `https://the_url/test`
  - `#customer_portal_more_minutes_url` is `https://the_url/buy_pipeline_minutes`
  - `#customer_portal_more_storage_url` is `https://the_url/buy_storage`
- If CUSTOMER_PORTAL_URL is not set ...
  - When dev env ...
    - `#customer_portal_url('/test')` is `https://customers.stg.gitlab.com/test`
    - `#customer_portal_more_minutes_url` is `https://customers.stg.gitlab.com/buy_pipeline_minutes`
    - `#customer_portal_more_storage_url` is `https://customers.stg.gitlab.com/buy_storage`
  - When test env ...
    - `#customer_portal_url('/test')` is `https://customers.gitlab.com/test`
    - `#customer_portal_more_minutes_url` is `https://ccustomers.gitlab.com/buy_pipeline_minutes`
    - `#customer_portal_more_storage_url` is `https://customers.gitlab.com/buy_storage`

Story points: 2.0