Generate classes based on the mozilla parser api

- now can filter based on types
When could `elem` ever be a list and a basestring? The original said `Iterable`, it looks like. Not sure why you changed it, but, if you leave `list`, you don't need the second clause.