fix destroy() and create() methods to work together

You can call create() to create a view. If you call create() and the
view has already been created, throws an error.

You call destroy() to destroy a previous view. It also resets the view
to null and sets isDestroy true and isCreated false.
add fallback to camelCase for template lookup