Use several processes to download images

Uses `multiprocessing.Pool`. It spawns a number of worker processes
which are given data in the `pool.map_async()` call.

`Pool` spawns X processes, it takes care of giving data to each process,
so there's only X extra processes running.

From `multiprocessing.Value`: To handle the calls to `update_progress()`
with correct arguments (`count` and `total`) there's two global and
shared variables, `TOTAL_COUNT` and `COUNTER`.
`download_and_update_progress()` uses `TOTAL_COUNT`s lock to only run
`update_progress()` when no other process is running it, so effectively
it's using it as a semaphore.

I also added some extra code to handle `KeyboardInterrupt`s. The weird
call to `p.get(0xFFFF)` is a workaround for waiting for the pool to
finish without invoking `pool.close()`. Without it `KeyboardInterrupt`s
would either result in `main()` hanging or in bazillion stacktraces from
the child processes.
Add option for # of workers
Bump version number

closes #17
Merge pull request #18 from Gosha/multiproc-download

Multiproc download