An inheritance decorator

Method and practice for instantiating classes that are inherited from

More tests, and ability to nullify parameters

Added better naming to common_params, and an assertion and test to boot

Python 2.6 compatible unit tests
enable support for boto config in S3Client
Add ability to read from s3.
Add iteration of s3 files
Issue #137: Adding command line parameters to global config so that logging is configurable
Disabling gzip compressions since it breaks the browser

Change-Id: Ia2c1a7964ab6df674ece5a67994c79508aa396b4
Reviewed-on: https://gerrit.spotify.net/gerrit/87762
TC-Compile-And-Test: Team City <teamcity@spotify.com>
Reviewed-by: Lars Albertsson <lalle@spotify.com>
Add snakebite support to improve HDFS operation performance
Replacing inheritance with decorators
Replacing inheritance with decorators in luigi.util

- Added docstring to @inherits (thanks, alexbw) and deprecated the Derived class
- Added a @requires decorator
- Added some helper method for tasks using @inherits
- Added a @copies decorator and deprecated the Copy class
- Added a @delegates decorator and deprecated the CompositionTask class
Add a command line argument to pass in the logging configuration file
Refactor worker#run to prepare fix for #222

Break up worker#run into smaller methods and give each a meaningful
name so it's easier to figure out what it's doing and allow code reuse.

Collapse duplicate if constructs.
luigi-history configuration option for writing stuff to Hadoop job output directory

Specifically for tracking the job ID in a configuration where no history is stored in the output directory by Hadoop.
Let worker wait for running tasks to complete.

If

- running tasks is non-empty, then another worker is running my tasks
- n_pending_tasks is non-zero, then I have something to do after she is done

And I shall wait for `wait_interval` seconds (with random jitter).

This adds the following configuration options:

- worker-keep-alive [boolean]
- worker-wait-interval [int]
Some very small cleanups: Remove unused imports, break long lines, add newline at end of file. Smallish things..
Clarify README.md wording for Tasks with multiple output Targets.

Based on luigi-user post https://groups.google.com/d/msg/luigi-user/YOCf9fJcqUE/Po2q0z0TV9AJ
Fixed a bug in @delegates and fixed the unit tests to catch it
1.0.12
Adjust Top10Artists to output expected tab-separated data
Allow specifying a postgres port.
By calling PostgresTarget('host:port') string.
So you can call with just a 'host' or with a 'host:port'.
The default port remains 5432 as determind by the module psycopg2
- don't disable existing loggers when using logging.config.fileConfig