- Make the template selection configurable.

Also add a template for immutable classes and some docs.