Add reviver function to `fabric.Canvas.loadFromJSON` (and loadFromDatalessJSON)

Add reviver function to `fabric.Canvas.loadFromJSON` (and loadFromDatalessJSON)
Add unit test
Closes issue #722