Added check for source file existence.
Heavy refactoring into interfaces and classes.
Added unit tests.
Fixed target platform mismatch warning.
Fixed issue where the package will not be downloaded if the package folder exists, but is empty.
Merge pull request #1 from dprothero/master

Added dprothero's contributions.