[Download] Fix and complete Download API

Refactored Filesytem and Download API to share code
related to virtual roots.
Pass TCT tests.
Fix example.

BUG=XWALK-1070
Refer to chromium code, the getter function name is preferred to be same as private member name
```
int GetId() const { return id_; }
const std::string& GetFullPath() const { return fullpath_; }
```