Make sure semicolon insert always occurs asynchronously.

This help position the semicolon after the caret most of the time 
especially when typing.
Build update.
Refactor files.
Add readme.