Add support for UI extension

This PR adds support for the OpenID UI extension, originally committed to @nov's fork.

This branch is rebased off my pape branch that has already been submitted as a PR at grosser/rack-openid#1. It should not be merged before that PR.