Major block refactor, fix purifier container.
- Most blocks with TEs are formed with the new class (not hand scanner)
- Class is generic type to know what TE to cast to
- Also takes a class parameter so it can be instantiated