Fixed to remove attribute if updated value is none
Beautified demo page
Fixed life cycle bug

There must be an id property when `initOptions` is called, so just give
a temp id before `initOptions`, id may be overriten in `setProperties`
before the control is rendered