Implement string hash code in C.

[SPARKR-135](https://sparkr.atlassian.net/browse/SPARKR-135). Improve wordcount performance by implement the string hash code in C. The performance improvement is about 10X.
On a 3-worker-node Spark cluster, each node has 16 threads (2.93Ghz Xeon), 48G memory:

3.2 G data  from 96 minutes to 8 minutes
320 M data from 10 minutes to 1 minute

@shivaram I haven't test this patch on Windows, could you help to test it? Thanks.
Looking at http://r-pkgs.had.co.nz/src.html#clang, it looks like its good practice to put in a `src/SparkR-init.c` to handle relocatable DLLs etc. 

Also there is a note to unload the DLL when the package is unloaded. We should probably add this in sparkR.R ?

Quoting from the manual:
```
Like with C++, whenever you use C code in your package, you should unload the DLL when the package is unloaded:

.onUnload <- function (libpath) {
  library.dynam.unload("mypackage", libpath)
}
```