add campaigns

levels should be groupable to form a campaign.
campaigns can also contain sub campaigns.

levels and campaigns also need:

  • identifier (level already has this)
  • name (levels current name is used as identifier, TODO split to identifier and name)
  • description
  • enter dialog (when first played this dialog is shown) (optional)
  • finish dialog (when (first?) finished this dialog is shown) (optional)
  • requirements (a set of identifiers that need to be completed first)
  • state (locked -> unlocked -> started -> finished)