refactor code

make keyword-brunch still work when version or name not in package.json
add two new default keyword `date` and `timestamp`
fixed keyword-brunch error when public folder not exist