Fix problem in MONTHNUM and add DATESTAMP_EVENTLOG pattern and 

Whilst trying to get Windows Event Log data into logstash I had some problems with the the timestamp format Windows uses.

Taking an example value (the TimeGenerated field provided by the eventlog input):

20131218141650.687853-000

And using:

%{YEAR}%{MONTHNUM}%{MONTHDAY}%{HOUR}%{MINUTE}%{SECOND}

I get a %{MONTHNUM} value of 1, but it should be 12. This is because the MONTHNUM pattern allows for single digit month values. I created a new pattern which removed this flexibility:

MONTHNUM2 (?:0[1-9]|1[0-2])

This, along with the pattern below works as I would expect:

DATESTAMP_EVENTLOG %{YEAR}%{MONTHNUM2}%{MONTHDAY}%{HOUR}%{MINUTE}%{SECOND}

I'm sure there's a better way of implementing this but I think this is a genuine problem.
Moved 'success' message into the begin block so it doesn't get printed if there's an error
Fixes exception when not specifying yamlmibdir

Fixes 'undefined method `empty?` for nil:NilClass exception
Add a RFC2822 compliant date pattern

The pattern is defined in RFC2822 and differs from the one defined in
RFC822:
 http://www.ietf.org/rfc/rfc2822.txt

Example:
 Mon, 20 Jan 2014 18:40:18 +0100
on broken pipes - ie program exit, EBADF can will be used instead of EPIPE. This commit will allow pipe command to be restarted.
Merge pull request #1 from ronnocol/patch-1

Update pipe.rb output - Fix LOGSTASH-1860
Update java

Added support for an "_" in the JAVACLASS and added support for a space in the JAVAFILE expression.

Examples are: "at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)"

This example would have failed without the update.
Add some patterns I found useful in parsing mongo logs.
Fix syntax errors in kv examples

Fix syntax errors in examples for the include_keys, exclude_keys and default_keys config values.
Prefix patterns with MONGO_
Merge pull request #1094 from untergeek/es-1.0-template

ES 1.0 template
touch up email doc
brief description input/output codecs
Implement `protocol => http` in elasticsearch output

Also add `action` setting to allow logstash to signal document
deletions, updates, etc. The goal is to support any bulk request with
this output plugin, but the early target is simply to allow deletes.

This is one step in the path to having only one elasticsearch output
plugin and eventually removing elasticsearch_http.

The following tests pass
    % bin/logstash rspec spec/outputs/elasticsearch.rb
    ...
    Finished in 1 minute 33.94 seconds
    3 examples, 0 failures

Tested manually 'elasticsearch { protocol => http }' with success.

Still to be implemented:
* template management
* tests to cover all protocols: node, transport, and http
* mark elasticsearch_http as deprecated?
Use ftw instead of elasticsearch-ruby for bulk indexing

In tests, using ftw directly results in 30% more events/sec than using
elasticsearch-ruby for bulk requests.
InetSocketTransportAddress needs port to be a number, silly me.
Add another strong note about NodeClient and firewalls
Add tests for templates and all 3 protocol settings
Set a default node.name

This now causes logstash elasticsearch NodeClients to show up in the
cluster node list as "logstash-<hostname>-<pid>-xxxx"

This should help all users identify logstash nodes among their cluster.
Implement template management

Tests pass against ES 1.0.0:
  % bin/logstash rspec spec/outputs/elasticsearch.rb -e 'index template expected behavior' --fail-fast
  Finished in 27.57 seconds
  15 examples, 0 failures