Adds unit tests for db_task_history, bug fixes

Uses sqlite3 in memory mode for db.
If sqlalchemy can't be imported, skips the test rather than failing.
added File.copy

Use case: when a file, e.g. from an ExternalTask lives
on a read-only filesystem, you cannot `move` it.

One unittest included.
Add Scalding support

Change-Id: I5c3ef04d7cc2db8cfb5944875bbeecb95b5d86e0
Fixes templates, reverse_url doesn't work
Allow configuration of smtp for notifications.

Defaults are all the same as before, but you can now
specify ssl, login, server host, etc.
bumped the version number and uploaded to pypi
Adding a manifest file for distutils so that bin/luigid is included in the source tarball that gets built
Hadoop binary path can now be specified in config.  Sets are converted to tuples in Task class.
Additional unit tests in the hdfs module and a new hive client command class supporting the Apache release of Hive, which returns a non-zero exit status if tables and partitions dont exist
Static files should work now in PyPi.

Bumped version number even more.
Improved the formatting
Check it out: https://pypi.python.org/pypi/luigi
Removed a spurious traceback from the PyPi installation by bundling README.md
Removing upstream_status from serialization info
Moving upstream code to do iterative graph traversal
Adding gzip support to application calls
Improve OO and remove code smell, hdfs layer.  Mend HDFS tests.
Revert changes in hdfs.py.
Fix merge issues in _hdfs_test.
only fail if given an egg file, not a directory ending in .egg
Fixes visualizer for taskids with _ and numbers in the name
Adds dependencies on the mock library from pypi/debian
Wrap file in python object to allow run-time extensions by Format classes
Support map-only streaming jobs

If the number of reducers is set to 0, Hadoop won't even run the reduce
phase of the job.  So if there is no reducer() method defined in the
JobTask, we run a map-only job and the mapper writes output directly
instead of serializing the key/value.