Weld is the CDI implementation, you have to have a CDI implementation. If you're stuck on Tomcat, take a look at TomEE.
did you find a solution for the null pointer exception in the TransactionServletListener?
I recently upgraded from Seam 3.1.0.beta3 to 3.1.0.final and experience the same problem.
Thanks Jason for the hint on TomEE. It looks very promising. However for smaller projects I'd prefer not to use all these additional EE-Jars.
If there's an NPE there, it probably has to do with not having JTA setup correctly in tomcat.