bugfix: test/test_hashtable segment fault

In zc_hashtable.c, zc_hashtable_remove() and zc_hashtable_del() didn't check the
argument pass to it.  So, if pass NULL to them, they will dereference it, and if
we are lucky, it will segment fault.

This commit fix that problem.
.gitignore: dot files and TAGS file

Emacs stuff:

    o dot files: dir-locals.el
    o TAGS: generated by etags
makefile: add TAGS target
Merge pull request #40 from mofaph/misc

make: 细微的修改（makefile 和 .gitignore）
Merge pull request #39 from mofaph/bugfix-38

尝试修复 #38 出现的段错误
zc_hashtable.c: add missing zc_error() argument in zc_hashtable_remove()

It still work because zc_error() will print something on stack if required
argument didn't given, but it does not do things we expected.
add stat logic to the static file rule

- this emulates Python's WatchedFileHandler for logging, where we check
  the inode of our logfile path to see if it was changed out from underneath
  us by an external tool like logrotate.

  This allows applications that use an external tool for log rotation/compression
  to have a simple log configuration and not have to worry about calling zlog_reload
  to reopen the new file after the external tool has run.
Merge pull request #42 from wynnw/feature/watched-file-mode

Change to the static file rule to emulate python's WatchedFileHandler mode when used with external log rotation
Merge pull request #41 from mofaph/add-missing-argument

zc_hashtable.c: add missing zc_error() argument in zc_hashtable_remove()
version: 1.2.12
doc: change download list back to github
Merge tag '1.2.12' and add log