Use proper span for error messages
Use strings instead of identifiers for options

This should be more future proof, and looks more uniform on an aesthetic level. Using identifiers for the generator options also conflicts with Rust's naming conventions, for example, the `api` options are all lower case letters, where as variants are usually in Pascal case.

~~~rust
generate_gl_bindings! {
    api: "gl",
    profile: "core",
    version: "4.5",
    generator: "global",
    extensions: [
        "GL_EXT_texture_filter_anisotropic",
    ],
}
~~~