add throwing of an error when .keys are missing for signed option

otherwise all you get is TypeError: Cannot call method "sign" of undefined

usually im not a fan of defensive programming but in this case it's optional but if a user forgets to set `app.keys` or whatever their "global" key source might be then they'll get a potentially confusing error