Add publish dir

all published files will go to this dir. I included the empty dir so
other users won't get confused about non-exist dir errors.
init gitignore

The first entry is ignoring files under public dir.