Add PreProcess step for importing milestone

Proposal

The work done in !112271 (merged) appears to be specific to Work Items which does not seem to include Milestones. The available work items are:

  • Issue
  • Incident
  • Test case
  • Requirement
  • Task

We could therefore add a preprocess step for milestones if the CSV contains the milestone header as suggested by @cablett here

For work item types we declaratively state which ones we support (available_work_item_types method) but for Milestones it could be something like:

  1. Get a list of all Milestones strings referenced in the CSV during preprocess! method
  2. Get all of them in a big DB load (depending on size) and make sure they exist and the user is authorised to use them.
  3. Throw PreprocessError error if any do not exist or are not available to the user.

I can imagine an authorisation case where a user with access to a project (but no parent group access) does not have access to a Group's milestones - can they still use them? That sort of thing.