Create URI::GlobalID scheme

Addresses https://github.com/rails/globalid/issues/6
If I recall, the other URI classes validate on `#component=` calls and don't validate on `#set_component` calls. That allows their constructors to build an invalid URI then validate it later, but ensure that `#foo=` calls will always validate.