related to #54
If users naming component with id 'input-1', it may be hard to be
used in the expression, because 'input-1' is not a valid JS variable
name.
So we update the spec to make sure component ids are valid JS variable
names.
According to https://stackoverflow.com/a/1661249, valid JS variable
name can be a big set. In this patch, we just force users to pass
a simple and limited RegExp, which keep application simple and readable.
TODO: validate component ids are not keywords.