Refactor fetcher namespace into a class/process.

Layed the groundwork for having a fetcher object with a cache dir per
slave. Factored all fetcher-relevant code into a fetcher class and
process. Added a fetcher parameter to a lot of methods related to
launching tasks, mostly in containerizers. The latter are thus not
holders of fetchers, only slaves are. See MESOS-2172.

Review: https://reviews.apache.org/r/28830
Consolidate all fetcher env vars into one that holds a JSON object.

Changed env var ensemble into one env var containing JSON, parsing
this to protobuf for use. Adapted fetcher tests.

Review: https://reviews.apache.org/r/28975
Add ReservationType and ReservationInfo for dynamic reservations.

Review: https://reviews.apache.org/r/28697
Modified Resources to account for reservation type.

Review: https://reviews.apache.org/r/28698
Add dynamic reservation information to LaunchTasksMessage.

Review: https://reviews.apache.org/r/29173
Update the C++ Scheduler API.

Review: https://reviews.apache.org/r/29175
Update the master and allocator + Added a test for acquiring dynamic reservations.

Review: https://reviews.apache.org/r/29174