LOGSTASH-805
Merge branch 'master' into aws-iam-roles
Managed to hack together something that works (idk about docs though)
Merge branch 'master' into aws-iam-roles
removed unnecessary docgen code added earlier
put docgen code back in, fixed region & ssl configs
applied AwsConfig mixin to all AWS plugins
Merge branch 'master' into aws-iam-roles
added old config options for backward compatibility with deprecation warnings & info
added conditional around compatibility code
added a missing deprecated flag
moved call to setup_aws_config to mixin
Merge branch 'master' into aws-iam-roles
Add JSON encoder filter.
Update patterns/grok-patterns

This is a personal preference, but for web logs, I prefer the parser to capture what it can.  Currently with an invalid request, it fails completely rather than capturing the other log information such as date, bytes transferred and HTTP status.

This patch captures the invalid request into @fields.rawrequest and leaves @fields.verb, @fields.request and @fields.httpversion as nulls if it cannot be properly parsed.

Here is a sample of invalid requests I have from my logs:
115.70.170.86 - - [31/Oct/2012:06:41:24 +1100] "G" 408 0 "-" "-"
165.86.71.20 - - [31/Oct/2012:04:27:01 +1100] "GET http://dis.us.criteo.com/dis/dis.aspx?&t1=sendEvent&c=2&p=3937&p1=v%3D2%26wi%3D7715628%26pt1%3D0%26pt2%3D1%26si%3D1&cb=21664477550&ref=&sc_r=1280x1024&sc_d=32 HTTP/1.0" 400 672 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)"

Obviously these are not valid requests, and I prefer to handle them this way, but the change is up to you.
LOGSTASH-689: prefix OpenTSDB message with 'put '
piplined and batched eval redis input
more correct code comment
first before doing batched/piplined requests
some readability changes