nipapd: add exception logging for unhandled error
nipapd: add exception logging for unhandled error

While we do handle exceptions in that we catch them, we might not
rewrite them into something end-user friendly and this is what is
referred to here as "unhandled errors". A couple of things are already
dealt with but there might be more DataErrors that we do not currently
match up and so we add this handler at the end as a catch-all. It uses
the logging.exception function which pretty prints the traceback.

Part of #1043.

garberg/NIPAP,garberg/NIPAP,SpriteLink/NIPAP,bbaja42/NIPAP,bbaja42/NIPAP,garberg/NIPAP,bbaja42/NIPAP,SpriteLink/NIPAP,bbaja42/NIPAP,garberg/NIPAP,SpriteLink/NIPAP,SpriteLink/NIPAP,SpriteLink/NIPAP,SpriteLink/NIPAP,bbaja42/NIPAP,bbaja42/NIPAP,garberg/NIPAP,garberg/NIPAP