Made each item in Select customizable

You can customize the item content by:

- Setting the `itemTemplate` property, it will be passed to
`lib.format` method
- Setting the `getItemHTML` method, the default implementation is
format the `itemTemplate` property

Note that item html would be a `<li>` element's `innerHTML`, so do not
wrap more `<li>` tag arround