Config schema refractor
There are two thing should be done. 
- The data should be more flexible (currently, we're very opinionated with the type of remote user have with the accessory)
- We should implement some attribute naming convention based on the `HAP-NodeJS` lib.

For Boolean characteristic like `Characteristic.On`, sometimes we can do config like:
```
{ "on": "xxx", "off": "yyy"
```
But for other Boolean characteristic like `Characteristic.SwingMode`, we do the toggle style like:
```
{ "swingToggle: "xxx" }}}
```
It feels awkward because we've assumed the style of the remote user will have in the config (which we shouldn't do). 

For the naming convention, it's quite a tradeoff thing between config readability and consistent with the `HAP-NodeJS`

I hopes after this issue, we can solve above internal problems so the plugin can move faster during development.