Only override set methods for 1-arg methods.

AsmBackedClassGenerator currently "overrides" the set method for any method
with the same name as the property, regardless of how many arguments it has.
The set method is intended to be an alias for the setter without starting with
"set" (e.g. instead of setProp(String), it would be prop(String)).

By accepting any method with the property's name, it is generating more set
methods than intended. If there is a prop(String, String) and a prop(String,
String, String) it will generate two prop(String) methods, resulting in a
ClassFormatError (as noted in GRADLE-2695).

This commit changes the overrideSetMethod() method to only perform the
override if the passed metaMethod is a one arg method.
Asm class generator should add set methods if there are only multi-arg.

Previous commit changed AsmBackedClassGenerator to only accept 1-arg methods
to be overridden. While this fixed the ClassFormatError, it also prevented
the generator from adding new 1-arg set methods, if there are only multi-arg
ones.

This commit updates the logic in AbstractClassGenerator to only attempt to
override if it is a 1-arg method. If not methods were overridden it will
add a new 1-arg method.
Merge pull request #211 from ajoberstar/issue-2695

Fix GRADLE-2695: ClassFormatError introduced in 1.3
Mentioned Andrew's bug fix
Fixed generation of set methods for properties on objects with @NoConventionMapping.
Minor tweaks
Some c++ spec updates.
Fleshed out some details on new command line options for Test task.
Improved status/progress bar in few ways.

1. New info in the status bar:
 - added % to the build progress (tasks done/all tasks)
 - changed 'Loading' to 'Configuring'
 - log number of projects/total projects configured (cannot use the % here because we don't always know how many projects need to be configured upfront - configuration on demand, etc.)
 - log the project that is being configured

Examples:

> Configuring > 1/25 projects > :project1
> Building 25% > :core:codenarcTest

2. Some refactoring and rework is pending. The parallel status bar looks worse with this change but it will be fixed with the next round of commits.
Some refactoring, extracted an interface so that the next improvements are easier to implement.
Pushed out some formatting logic to separate classes (they are kind of similar, maybe they should be merged).
Rename job
Moved classes to a better package.
Moved the nested project filtering out of the build progress logger to a separate class, some rename job and unit test refactoring is pending.
Rename job
Added some coverage for build progress filter. A bit of a mocking frenzy but already paid off by finding some issues.
Added convenience method for starting progress operations
Started using the convenience method for progress logger.
Fixed a unit test
Fixed the coverage for BuildProgressLogger