added View class, made ViewEngine abstract and broke into Smarty and PHP classes, and added tests