Update path(s) tasks, add tests, extract pluralize to strutil

Review Request #2892 - Created Sept. 25, 2015 and submitted

Nick Howard (Twitter)
benjyw, jsirois, stuhood, zundel
The path / paths tasks were untested, used older idioms and had behavior that didn't reflect their documentation.

This updates them so that the print out the paths rather than just have a count.
It switches to using the console_output method instead of execute
It updates the algorithm used to cover cases more effectively, even in the face of cycles.

It also extracts pluralize from reporting and moves it to strutil and adds tests for it.

Wrote test suite, which uncovered weird behavior in the existing impl. Made it pass.

Benjy Weinberger
John Sirois
Stu Hood
Nick Howard (Twitter)
Review request changed

Status: Closed (submitted)

Change Summary:


Nick Howard (Twitter)

Thanks folks, submitted at https://github.com/pantsbuild/pants/commit/4d691ca627fdd8fb5cf83776796e29c33de8f629

Follow up tasks
add to -> from path lookup
move path lookup helper to build_graph
* maybe deprecate 'path' since it's redundant