Shopify style logging which doesn't hate the terminal

Use key=value sets in log messages to make logs simpler to parse; ensure
output is always properly escaped.

Resolves #428

Contributors:

 - Ryan Biesemeyer (@yaauie)
 - Harry Brundage (@airhorns)
 - Oren Mazor (@orenmazor)
Merge branch 'issue-428/shopify-style-logging'
bump version to 3.1.x