* refactor: stop spreading challenge over the node
Instead of creating a Gatsby node with id of challenge.id, we create a
single node field that has all the challenge data.
While this makes the GraphQL queries more verbose, it means we're free
to create multiple nodes with the same challenge.id.
* test: update time-line test for new GQL schema
* test: update mocks with new GQL schema
* feat/ add smooth scroll from landing to map
* feat: scroll to currentChallengeId if it exist
* fix: update tests
* refactor: migrate from componentWillMount
* fix: update Map and Block's tests and mocks
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>