Merge the GridCanvas updates into the shared repo

Updates include:
- A canvas/grid that is responsive to screen size/changing of size.

Users are able to click on cells in order toggle whether they are "Alive".
This information is return as a string vie the method "getPatternString".

A lot of the commits where work done independently and requires review.