EU legislation

Implemented the management side of EU legislation, complete with the "copy from last year" workflow. However, this does not include amending the scripts for calculating current listing status for EU. I thought that could be done separately and it would be good to merge this branch sooner, because of the events handling thing, which could be used for other features.

How to test "copy from last year" workflow:

  1. you need your migrations up to date
  2. you need redis and sidekiq running
  3. go to EU Regulations, create new regulation. leave the 'copy listing changes from' blank
  4. add an EU listing change to some taxon concept and make sure you link it with the event you created. you can add more if you like :)
  5. create another EU Regulation, make sure it has a date assigned and also that it is linked to the previous regulatyion by selecting it in the 'copy listing changes from' field.
    * copying is done in a background job, you may notice a delay there if you added a lot of listing changes.
  6. the listing change(s) you added previously would now be duplicated and the effective_at date should be the same as the regulation you added. However, they should not be 'current' - you may now edit them to amend last year's stuff
  7. when you're happy all the changes have been applied, go to the EU Regulations page and click 'activate' (cog icon) next to the most recently added regulation
    * activation is done in a background job, you may notice a delay there
  8. the new regulations and its listing changes should now be 'current', while the old ones are no longer current