Inheritance improvements.

Remove inheritance and insert extensions in favour of having this functionality built right into the template class.
Remove the base extension class, as it wasn't needed anymore.
Move all internal template parameters into a single variable to prevent conflicts.
Add new template layout method, adding inheritance "implements" functionality.
Simplify inheritance block methods to "start" and "end".
Update documentation.