Revert "Remove the use of `Data.Aeson.Generic` and use GHC Generics instead." because GHC generics uses a different serialization format.

This reverts commit 509b0fa84fee9c71f3f76e7f347179e2887bfcf4.
Serialization of `Instruction` is now implemented explicitly and does not rely on 'Generics' anymore. #73
Merge remote-tracking branch 'upstream/develop' into canvas

Conflicts:
	src/Graphics/UI/Threepenny/Internal/Types.hs
Remove unused module `Data.Aeson.Generic'
Make the JSON encoding of Instructions more JSON-idiomatic.

This is done so that we can avoid the `for(var key in event)`
construct in `driver.js` which is both brittle and somewhat
non-deterministic.