[Story] Maps - FOW

# User Story

As a DM or map owner, I can manipulate the Fog of War on a map 

## Details

- [x] TBD after Tech Spike(s)
- UX Input (Designs?)
- [x] Technical Specs Input

Currently the initial proposal is for what we think will give users an awesome FoW system to use. The current solution is actively bad ('fog' tokens), so we would like to keep these features as tight as possible to get something better into their hands. First release does not necessarily mean the end of working on FoW.

MVP - Minimun Viable Product. Fully realized feature(s) which address our goals. This should be fully polished and functional, but limited in scope.

## Steps

- [x] Tech Spike
- [x] MVP Criteria of Completion
  - [x] Only usable by map owner
  - [x] Store
    - [x] Persistent canvas
      - [x] Local Persistence 
    - [x] Active/Inactive
  - [x] Interface
    - [x] Owner activate/deactivate FoW mode
      - [x] Change to panel opening
    - [x] Owner toggles between `Obscure` and `Reveal`
  - [x] On Screen
    - [x] When active
      - [x] Click, pull, release to draw shapes.
      - [x] Owner should see the shape as it is being rendered
      - [x] Owner should be able to tell difference between `obscure` and `reveal`
      - ~~Owner should be able to cancel out of their current shape~~
    - [x] Owner should be able to see through occlusion. Non owners should not.
      - [x] Owner vision should not have the shapes overlap and darken transparency 
    - [x] All users maps should be synchronized
      - [x] FoW should survive refresh
  - Analytics
    - Is it being used? 
    - How many fog shapes are people making?
  - QA
    - Does the experience slow down at all with large numbers of fog shapes?
      - Does the above warrant doing our best to reduce the number of fog shapes?
  - Possible MVP stretch goals
    - Other shapes (initial criteria is just rectangles)
    - Keyboard shortcuts
    - [x] Hide All/Reveal All
    - Enable/Disable panning while FoW mode is active
    - Owner gets a toggle to see map as non owners do


## Acceptance Criteria (To be checked off **only** during Review)

This should be filled in prior to moving into ~"In Progress", but is not required upon first submitting the ticket.
**This list needs to be reviewed and completed by someone who did not work on the ticket.** Please do not pass Acceptance Criteria on a ticket you contributed code to. Ping #qa in Slack or #mythic-table to let someone know that a ticket is completed and ready for ~Review.

<!-- Some notes on Acceptance Criteria (AC)
If you are having issues creating Acceptance Criteria, please review [Some notes on Acceptance Criteria(AC)](https://gitlab.com/mythicteam/mythictable/-/wikis/qa/acceptace-criteria). Don't hesitate to ask for AC review or assistance in #qa, it's what we're here for.
-->

- [ ] Given: Samples Criteria exists in template
    - [ ] And: it has not been removed
    - [ ] When: the ticket has been submitted
    - [ ] Then: Someone else should update this
    - [ ] And: include acceptable Acceptance Criteria
    
<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 8.0