Add object-oriented concept in TypeScript.
Update classes.

+ Add `Template`
* Fix `Number` is not `number`
Merge branch 'master' into develop

Conflicts:
	lib/template-generator.ts
	script.ts
	test/template-generator.js
Add search result banner and filter buttons.