OAuth signature should be verified against URL provided to the tool.  

There is possibility that a proxy will change URL along the way (for example protocol from https to http) which would invalidate signature.  Supporting LTI_1 and LTI_2 use case.

This is the change from #5016 with comment addressed.  I also some some minor things while I was in there and cleaned up, since I think we now prefer tests to fail by exception rather than an explicit `self.fail`, but I can switch that back if desired.