Expose DownloadableFileSource to external plugin authors

Background

freedesktop-sdk have a plugin that uses the DownloadableFileSource. Since it's not available on the same level as ScriptElement, they have to use a fairly nasty workaround to access it. (bst-external!48 (diffs))

Task description

  • Move _downloadablefilesource.py to the same level as scriptelement.py
  • Add it to buildstream's init.py
  • Update all of buildstream's sources to find it from its new location

Acceptance Criteria

//: A plugin that is not part of the buildstream main repo can import DownloadableFileSource using from buildstream import ...

note: Since freedesktop-sdk use buildstream from the bst-1.2 branch, This will have to be backported as well as merged to master.