Fixed lifetimes on syntax deriving structs, implemented Clone

Makes working with syntax deriving a bit more pleasuring. For instance, one can use local (non-static) strings anywhere inside `TraitDef` now.