2FA class stolen from RobThree and stripped down. Works best with qrencode utility installed, but will fall back to using google charts if qrencode is missing.