[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
Let me explain the current state is: 
Romuald created a VirtualFS class in common directory which aims to be used in Filesystem and Download extensions  at least. This class contains some constants like 'kDefaultFileMode'. Makes this constant static appears to be a good approach in order to use it in Filesystem or other extension. Am I wrong ?

If I remove the 'static' from this constant, I need to initialize such constant in VirtualFS constructor, or implement an accessor, or do something else...

The error I got when building filesystem_instance is
[   15s] FAILED: g++ -MMD -MF obj/filesystem/tizen_filesystem.filesystem_instance.o.d -DTIZEN -D_DEBUG -I../.. -Igen -std=c++0x -fPIC -fvisibility=hidden -O0 -g -DSYSCONFDIR="/etc" -I/usr/include/ -I/usr/include/appfw   -c ../../filesystem/filesystem_instance.cc -o obj/filesystem/tizen_filesystem.filesystem_instance.o
[   15s] In file included from ../../filesystem/filesystem_instance.h:17:0,
[   15s]                  from ../../filesystem/filesystem_instance.cc:5:
[   15s] ../../common/virtual_fs.h: In constructor '{anonymous}::PosixFile::PosixFile(const string&, int)':
[   15s] ../../common/virtual_fs.h:96:37: error: invalid use of non-static data member 'VirtualFS::kDefaultFileMode'
[   15s]    const unsigned kDefaultFileMode = 0755;
[   15s]                                      ^
[   15s] ../../filesystem/filesystem_instance.cc:535:49: error: from this location
[   15s]        : fd_(open(path.c_str(), mode, VirtualFS::kDefaultFileMode))
[   15s]                                                  ^
[   15s] In file included from ../../filesystem/filesystem_instance.h:17:0,
[   15s]                  from ../../filesystem/filesystem_instance.cc:5:
[   15s] ../../common/virtual_fs.h: In function 'bool {anonymous}::CopyElement(const string&, const string&)':
[   15s] ../../common/virtual_fs.h:96:37: error: invalid use of non-static data member 'VirtualFS::kDefaultFileMode'
[   15s]    const unsigned kDefaultFileMode = 0755;
[   15s]                                      ^
[   15s] ../../filesystem/filesystem_instance.cc:625:45: error: from this location
[   15s]    int status = mkdir(to.c_str(), VirtualFS::kDefaultFileMode);
[   15s]                                              ^
[   15s] In file included from ../../filesystem/filesystem_instance.h:17:0,
[   15s]                  from ../../filesystem/filesystem_instance.cc:5:
[   15s] ../../common/virtual_fs.h: In member function 'void FilesystemInstance::HandleFileCreateDirectory(const picojson::value&, std::string&)':
[   15s] ../../common/virtual_fs.h:96:37: error: invalid use of non-static data member 'VirtualFS::kDefaultFileMode'
[   15s]    const unsigned kDefaultFileMode = 0755;
[   15s]                                      ^
[   15s] ../../filesystem/filesystem_instance.cc:1123:50: error: from this location
[   15s]    if (!VirtualFS::MakePath(real_path, VirtualFS::kDefaultFileMode)) {
[   15s]                                                   ^
[   15s] In file included from ../../filesystem/filesystem_instance.h:17:0,
[   15s]                  from ../../filesystem/filesystem_instance.cc:5:
[   15s] ../../common/virtual_fs.h: In member function 'void FilesystemInstance::HandleFileCreateFile(const picojson::value&, std::string&)':
[   15s] ../../common/virtual_fs.h:96:37: error: invalid use of non-static data member 'VirtualFS::kDefaultFileMode'
[   15s]    const unsigned kDefaultFileMode = 0755;
[   15s]                                      ^
[   15s] ../../filesystem/filesystem_instance.cc:1157:20: error: from this location
[   15s]          VirtualFS::kDefaultFileMode);