[REEF-3]: A basic Task Scheduler
This implements REEF-3: https://issues.apache.org/jira/browse/REEF-3

It is a basic Task Scheduler example using Reef-webserver. The application
receives the task (shell command) list from user and execute the tasks in a
FIFO order.

Users can send the HTTP request to the server via URL:
 http://{address}:{port}/reef-example-scheduler/v1

Users can send the following requests

  * /list               lists all the tasks' status.
  * /clear              clears all the tasks waiting on the queue. Returns how
                        many tasks are removed.
  * /submit?cmd=COMMAND submits a COMMAND to be executed and return the taskID.
  * /status?id=ID       returns the status of task whose id is ID.
  * /cancel?id=ID       cancels the task whose id is ID.

The results of tasks are written in the log files - both in driver's and
evaluators'.

By default, the application reuses existing evaluator to run Tasks.
Using -retain false option, the driver allocates an evaluator for each command.

The code was contributed by Yunseong Lee <yunseong.lee@me.com>

Closes #3
This address [REEF-6] and [REEF-25].
It changes the policy of sending requests to YARN RM from "one-request-at-a-time" to "one-kind-of-requests-at-a-time".
Contributed by John Yang <johnyangk@apache.org>
Closes #4
Merge branch 'master' into juwang-logfactory
update comments