Merge pull request #57 from michaelfung/master

use cheaper data structure for main_*
Merge pull request #58 from michaelfung/master

change main cat and dev field name for consistency
new Timer requirement
New Copy Hub API

copy the data of source Hub in server to destination Hub
New Restore Hub API

Ask the Hub to restore its data to factory defaut
4 New API added

1. Restore Data API
2. Copy Data API
3. Restore Hub API
4. Copy Hub API
Modify the API to new Timer format
revert the Get Device API
correction
add device sort order
add 2 more device types