SigninController now handles rate limit errors

The SigninController does not yet defer its messages to the API so
I've special-cased this error.
Update SigninController to defer to API errors
ResetPasswordController now uses ID's SafeLogger

Log messages are now being sanitised. Also improves the logging for
the controller.
Use Either the distinguish between success and failure of getting a collection
Clean up some code around refresh of Query
Add logging for when a collection fails to update
Toggler has a proper class name
Summaries are expandable
Merge branch 'master' of github.com:guardian/frontend into expandable-summary
Revert timeout
Merge branch 'master' of github.com:guardian/frontend into expandable-summary
Remove areEqual and leave draft empty if there are no pending changes
Handle no draft
Handle no draft
Merge branch 'master' of github.com:guardian/frontend into expandable-summary
Change draft on a Block to be optional
Allow for a Nil draft list
When deleting from a None list, delete from copy of live
If option is list then only use list
Show social title only if switch is on
Fix frontBlock template broken from merge conflict