Lower the default synchronization timeout

It should be reasonable to expect your typical project sync to
finish in less than 60 * 15 seconds (15 minutes). The typical
case should be used as the default and use the easy --timeout
option to specify a longer timeout when doing the intial sync
or when using --force-download.
Convert sync command over to a class and enable Grouping

Grouping uses the new (and as of today unreleased) Group class
inside of Flask-Script.
Disable non sensical Pylint messages
Manually install Flask-Script from git
Merge pull request #18 from dstufft/guard-against-irrational-option-combinations

Defend against irrational combinations of command arguments
Store when a file was created (aka uploaded)
Enable triggers to update Projects/Versions with new created
Update the tests to pass with the new created
Merge pull request #8 from dstufft/creation-dates

Attempt to guess the real Project/Version/File creation date
Avoid handling some logic if we have no projects
Add a help text to the Synchronize command
Remove a duplicate command for ``warehouse sync``
Add help text to all of the options in the sync command
Customize the command runner for cleaner output
Merge pull request #19 from dstufft/cleanup-usage

Cleanup usage on commands
Fix a small condition where we try to insert a file before deleting
Merge pull request #21 from dstufft/fix-deletion-race

Fix a small condition where we try to insert a file before deleting
Fix an attempt to cast a None response from Redis to int
Merge pull request #22 from dstufft/fix-from-scratch

Fix an attempt to cast a None response from Redis to int
Switch to using stockpile to handle file storage

Stockpile will handle abstracting different types of storage
and presenting a unified interface. It will also handle fetching
an url that represents a particular file.