CDK-647: Update examples to use Flume's Log4jAppender and DatasetSink

 * This patch includes configuring the Log4jAppender to gracefully
    handle connection errors. This is useful as it avoids a circular
    dependency between loading the log4j configuration to create the
    dataset and starting Flume after the dataset exists.
 * The README for the logging, logging-webapp, and demo examples have
    been updated accordingly.
 * This patch also includes some fixes needed to work on the CDH5.1
    QuickStart VM. I suspect more of the examples may have issues.
    So I'll file a follow-up JIRA to check them out and to update the
    top-level README to account for changes between the 4.4 and 5.1 VMs.
Yes, but a common use case will be for the application to produce data that matches the destination dataset schema. In that case, it'd be useful to configure the Log4jAppender to not send a Schema with each record and to have the DatasetSink use it's Dataset's schema to deserialize the records.

In cases where the application's Schema doesn't match the destination Dataset, then it's up to the user to produce the schema URL or pay the penalty of the Schema being serialized per record. This is one of those places you'd want a true Enterprise schema repository so you wouldn't have to pay that overhead.

For the purposes of this example, I think it will be sufficient to either explain what that configuration option is doing or to just remove it and pay the performance penalty. I think setting the AvroSchemaUrl is a best practice we want to each our audience, but I also don't want to confuse them.