Simplified View into an abstract class that carries its variables.

A view carries a hashmap of values for its rendering instead of being
providen in the render method. This prevent the declaration of a hashmap
that would be used by the view.

path and read are not relevant to view engine that are not
file-based, so it's better to abstract view.

Ctpl can handle views from path.