rewrite template value of BaseTemplate

1, rename get_raw_template_value_from_cls() to template()
2, add BaseTemplate.template=() method
unit test case for rewriting template value
fix changing template unit case bug

restore value after changing
rename var check_order to ordered
unit test case bug fixed
simple method to define template