Refactor DownloadUrlLink creation out of changes

The DownloadUrlLinks may be used for other type of downloads
in the future, for example for project cloning.  Refactor all
the download classes into their own directory since they are
not change specific.  Create a series of UrlLinks types for
each download type that was used in the change screen so that
they can be easily reused.  Move some functions which were
only used to create these types into the DownloadUrlLink
class.  Add a factory function which creates all the
configured types.

Change-Id: I5d136333d1d2dd887dd66db92d6154890677ebfc
11 files changed