deriving: error out when used on a non-type

Besides being more helpful, this gives us the flexibility to later define a meaning for something like

    #[deriving(...)]
    mod bar { ... }