Made minor refactoring to handle exceptions from 'Source' and 'Destination'
in a consolidated manner

1) SourceExceptions are thrown when installing a package locally
from Source fails
2) DestinationExceptions are thrown when pushing a package
to the destination fails
Merge pull request #36 from NuGet/daravind/NuGetV2RepositoryMirrorWork

Made minor refactoring to handle more exceptions
Better support for universal time. (bug fixes)
ArchivePackagesJob - First cut
ArchivePackages job. Completed the rest
Added logic to ignore when ArchiveSet.Count = 0 and added a few null checks
Renamed lastUpdated to cursorDateTime
Ensuring that the newCursorDateTime is in Utc
Merge pull request #37 from NuGet/daravind/ArchivePackageBlobs

ArchivePackagesJob
NuGet V2 Repository Deletor = First cut
1) Update the package enumeration to account for packages where the Published
DateTime is the same for multiple packages. Simply, use .Skip with a skipIndex
To be on the safe side, OrderBy Id and Version too in addition to Published

2) DeletedPackages - Second cut

3) Dummy parameter called 'ExecuteDeletes' which prints out the packages to be deleted
Update to package enumeration and loop termination
Updated deletes to Binary Search indices on the destination side instead
of on the DateTime
Added a PackageDeletor which can delete a package given the id, version
cloudstorageaccount and databaseconnectionstring. This is heavily based on
the nucmd without the AuditRecord and IConsole

PackageDeletions-Second cut. Detection and Deletion are done
Need to do update of mirror.json
Added delete package logic. Upon delete, mirror json is updated to capture
deleted time

Tested it using a couple of local feeds 1 as source and 1 as the destination
1) Refactored DeletePackage into a different method. If there is a 409 conflict, currently, we skip stating that the mirror already has the package
If the package in the mirror has a different SourcePublished than the one from the source,
then, that implies a delete and add on the package. This method will be used then to delete the old package
from the mirror and add back the new one

2) Added $orderby=Published to the "Count" query as well to achieve precision in the results
If there is a 409 conflict, currently, we skip stating that the mirror already has the package
If the package in the mirror has a different SourcePublished than the one from the source,
then, that implies a delete and add on the package

With this change, we ensure that the package is deleted and newer revision
is mirrored
Merge pull request #38 from NuGet/daravind/NuGetV2RepositoryMirrorDeletor

Daravind/nuget v2 repository mirror deletor
Moved Warehouse scripts in to Work Service repo.
Merge branch 'master' into anurse/catalogupdaterjob

Conflicts:
	src/NuGet.Services.Work/Metadata/EmitMetadataBlobs.cs
	src/NuGet.Services.Work/NuGet.Services.Work.csproj
	src/NuGet.Services.Work/packages.config