New collectd codec to go with the new and improved multithreaded udp input plugin.  This makes the collectd input plugin obsolete.

# The Logstash input configuration can be as simple as:

```
input {
  udp {
    port => 28526
    buffer_size => 1452
    codec => collectd { }
  }
}
```
Figured out why `@types` wasn't initializing before register.  It needed to be above `super` (thanks @jordansissel)
Add tests for the collectd codec
Merge pull request #1 from pieterlexis/collectd-untergeek

Add tests for the collectd codec
Refactored the collectd plugin to be a codec
It can now take advantage of the new UDP plugin's enhanced speed.
Merge branch 'master' into collectd-untergeek

* master: (208 commits)
  Fix for LOGSTASH-2093
  Fix for LOGSTASH-2129
  Bump Elasticsearch to 1.1.1 and Kibana to 3.0.1
  Permit relative path or $PATH searches for the java command.
  Add LS_LOG_DIR option
  Improve package acceptance tests
  Fix minor issues with acceptance test
  Fix minor bug in init script found after acceptance test
  Add gemfile
  Initial commit of package acceptance testing
  Typo
  Copy-paste typo fix
  Make embedded => true respect `bind_host` setting.
  Start ES embedded server before creating a client.
  fix and regression tests for github issue #1258
  fix for undefined method + for nil:NilClass for invalid paramters
  reenabled multiline filter specs, refactored concurent streams generator, cleaups
  flush filters at end of test input
  flush support in multiline filter
  Adding new sysv init style scripts based on pleaserun
  ...
Patched the recommendations per @jordansissel
Forgot to prune out the old jar code.
Prune commented-out old one-liner
Patches per @colinsurprenant
It turns out that it would fail every time if…
Consistent failure if I didn't put `next if typename.nil?` before the rest of the statement.  This compromise puts 2 `next if` statements, then an implied `else` since those were the two conditions I needed to check :smile:
Latest info:
* Hash + Closures. Now replacing case/when statements with closures and hashes to improve performance
* Raise exceptions now instead of using `break`
* Zipped lines 163-164 per @colinsurprenant
* In line 280, this change is a regression.  The authfile is tiny, so this should still be okay, and it's only read once.  Tests failed without this change.
* Use `has_key?` instead of `include?()` in multiple places.
* In the spec/test, I fixed a typo that was bugging me.

With this commit, all tests pass!

```
$ bin/logstash rspec -fd spec/codecs/collectd.rb
Using Accessor#strict_set for specs
Run options: exclude {:redis=>true, :socket=>true, :performance=>true, :elasticsearch=>true, :broken=>true}

LogStash::Codecs::Collectd
  None
    should parse a normal packet
  Sign
    should parse a correctly signed packet
    should not parse an incorrectly signed packet
  Encrypt
    should parse an encrypted packet
    should not parse unencrypted packets when encrypt is configured

Finished in 2.1 seconds
5 examples, 0 failures
```
Patches some suggestions from @pieterlexis
- Pruned unnecessary variable `remove_header` #L196
- Fixed indent #L358
- Removed break, replaced with raise exception #363-365
Added a test for a part with an incorrect header length

This covers the `raise(HeaderError) if length > payload.length` segment in the collectd codec.
Need to rescue on HeaderError too
Of course, after I added HeaderError to the rescue, the test started to fail :)

Fixed the test to instead count for lines which made it through.
Merge branch 'master' into collectd-untergeek

* master:
  Correctly set nice and ulimit -n
  Correct hash syntax
  accept new generated gemfile.lock
Fixed to use path relative to collectd.rb codec.
Refactored to use new vendor_path method.  Fix array paths issue with streamlined types.db discovery
Merge branch 'master' into collectd-untergeek

* master:
  Fix typo I somehow forgot to commit in the last PR
  Refacter known file lookups to a single method in LogStash::Environment
  Purge jar-specific handling that is not needed anymore.