Adds pyparsing to requirements.txt
Fixes workers list
Merge pull request #490 from Houzz/fix_worker_list

Fixes workers list
Merge pull request #481 from Houzz/pyparsing_requirement

Adds pyparsing to requirements.txt
Modify HDFS to ignore Hadoop Native Libraries warning

- By default 64bit Hadoop binaries come with 32bit Native Libraries, which means that hadoop cli tools will add a header to the output:

```
14/10/10 13:38:51 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
OpenJDK 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.3.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
```

The first line will be directed to `stderr` by subprocess and the latter two will be stored in `stdout`.
Merge pull request #492 from liquid-sky/master

Modify HDFS to ignore Hadoop Native Libraries warning
Adapts visualizer graph width to screen size

This uses window.innerWidth - 51 to scale the graph to the screen size and allow
a 20-pixel padding on either side. This should be innerWidth - 40, but the graph
exceeds graphWidth by 11 pixels for some reason.
Merge pull request #493 from Houzz/graph_width

Adapts visualizer graph width to screen size
Remove deprecated fn and get_fn.

These functions were deprecated in 2012 (before the project
was open-sourced?)

Also remove extraneous `import warnings`
Merge pull request #486 from jcrobak/remove-deprecated-fn-get-fn

Remove deprecated fn and get_fn.
Trim whitespace, fix a few typos in examples
Removes deleted workers from task.workers

After deleting workers, they remain in each task's worker list. This breaks the
unique pending counts in the scheduler, as tasks have appear to have multiple
workers even when only one of those workers is active. This fixes that issue by
removing deleted workers from each task's active list.

I also moved the stakeholders update into SimpleTaskState, as that should really
be the only place where we modify task properties.
Improves resource management in scheduler.

I've noticed recently that my scheduler has been limiting a lot of my tasks to
run 1 at a time when the resource limitations should allow 4 simultaneous jobs.
This happens when tasks have multiple resources. Some of my tasks would have
a resource for writing to mysql and one for making a hive query, while others
would only have one for making a hive query. I have 1 write resource, and 4
hive resources, so I should be able to run 1 mysql write job and 3 other hive
jobs that don't write to mysql. Unfortunately, the mysql write jobs have higher
priority, so the end up getting scheduled in the greedy scheduling and take all
of the hive resources without being able to actually run more than one.

I added a test case for this as well as a few other similar issues and re-wrote
get_work to keep track of the greedy resources and the actual resources
separately. A task must fit in both of these to be scheduled, but this gives
more flexibility to allow tasks to run that don't interfere with the running of
higher priority tasks. Running 3 of the hive-only resource jobs doesn't
interfere with running the next hive plus mysql write task when the current one
is finished.
Merge pull request #495 from ivuk/fix-typo

Trim whitespace, fix a few typos in examples
Merge pull request #494 from Houzz/prune_workers

Removes deleted workers from task.workers
Merge pull request #496 from Houzz/greedy_scheduling

Improves resource management in scheduler.
Adds DISABLED status for tasks in scheduler.

Tasks can get the disabled status either through scheduling or from repeated
failures. The scheduler handles disabling via repeated failures, and tasks
disabled this way are automatically re-enabled after a fixed amount of time
or when pruned. This allows tasks that are repeatedly running and blocking
progress on other tasks to be pushed aside until someone can have a look.

Tasks can be set as disabled via the disabled parameter in Task. Tasks with
this parameter set to true have will be scheduled as disabled and will not be
run. This disable can only be removed by setting disabled to false in the task
and re-scheduling it. This makes it easier to stop running broken tasks without
having to manually figure out all upstream dependents and remove those as well.