Don't mess with pidfile if it has our pid

If you HUP gmond and you ran it with -p it will reexec itself, keeping its
pid, read the pidfile, find a process with its pid running and exit (so as
to prevent two gmonds running at once).  This isn't correct as it should
just keep running and not do anything with its pidfile.
Add a "summarized_metrics" option.

This feature works notionally the same as unsummarized_metrics, except
it serves as a list of metrics to summarize explicitly (instead of
ignoring metrics to leave out). This can be useful when aggregating
large numbers of metrics where only a very small number of metrics are
actually useful when summarized.

Note that while unsummarized_metrics works for filtering cluster / host
/ metrics, summarized_metrics only changes the behavior of summaries.
Merge pull request #127 from dhobsd/dho/summarized-metrics

Add a "summarized_metrics" option.
Merge pull request #29 from shufgy/master

Don't die when you HUP gmond -p
Improve performance reading from network.

data_thread reads XML 1023 bytes at a time, which is silly and
inefficient. Instead, create a buffer that doubles in size as necessary
and has a more reasonable initial buffer size.

When we get gzip content, start with a buffer size larger than our
gzipped contents, since we will probably need that anyway.
Add check for __thread in configure

Native compiler support for TLS is much faster than using pthread keys
with get/setspecific.
Configuration for talking directly to rrdcached

Wires up the configuration to be able to talk to rrdcached directly over
a TCP socket.
Add in support for talking directly to rrdcached

This removes the use of pthread mutexes in the case of updating an rrd.
Note that creating a new RRD still requires locking.
Read response from rrdcached

If we want to speak the protocol, we have to read the response. This
ignores errors that come back (if they do) because I don't have a good
idea of what to do with that information.
Need to htons(3) the port from the config.
Handle issues with sockets / nbio / polling better.
Allocate hash buckets sanely.

We have an array of buckets; this only requires one level of indirection
and much less initialization. The current situation underperforms
and confuses unnecessarily.
Improve hash table implementation:

 1) Get rid of "case-insensitive" metrics. I don't think these ever
 actually hit, but the code is silly. If we need it, we can normalize
 the data going into the table.

 2) Get rid of silly hash algorithm. Use MurmurHash. This isn't the
 latest / fastest version, but it's still much faster than what was
 there.

 3) Stop using division to find the bucket. Get rid of hash_prime, and
 size buckets to nearest power of two. This allows us to use bitwise
 arithmetic for the modulus.

 4) Get rid of silly rwlock implementation. Pthreads has a portable
 rwlock now, but ck's rwlock performs better.

 5) Get rid of per-bucket locks. I'm not convinced that the granularity
 is worth the overhead.

 6) Get rid of buckets. The "node" structure is effectively a bucket, so
 we can treat it like one. This reduces the amount of indirection we
 have to do before we find our data.

 7) Pad our bucket structure so that it won't split cache lines when
 iterating. This improves performance when iterating over buckets.
Fix some bugs after switching to new bucket impl
Bring back per-bucket locking

It turns out that this *is* actually better for an interactive gmetad.
Merge pull request #128 from dhobsd/dho/network-performance

Improve performance reading from network.
Merge pull request #129 from dhobsd/dho/lockless-rrdcached

Dho/lockless rrdcached
Add Concurrency Kit support to compile.
Merge branch 'master' of github.com:ganglia/monitor-core
Force CK to /usr