Added compile time validation of the param/return val types that contracts are applied to. This fixes a bug in NotEmpty which only checked for empty collection but allowed tests to pass for string also.
Deprecated NotEmpty and NotBlank contracts and replaced them with attributes that have names that are more semantically correct and consistent with the .NET BCL
Updated a reference to obsolete attribute
+ .gitattributes
Merged code from #7 with changes:
* moved compile-time validation into IValidateContractUsageAttribute;
* reduced validation aggressiveness (now raises a warning and ignores invalid annotations, instead of raising errors);
* standardized name of new attribute.