initial work for declaring binary types via @BinaryType annotation

to discuss:
	- currently leaking internal api into DefaultBinarySpec as it implements BinarySpecInternal to allow creation of lifecycle task with existing rule in LanguageBasePlugin
	- BinaryTypeModelRuleDefinitionHandler declares dependency on ComponentBasePlugin; should just be LanguageBasePlugin but this lets integTest fail atm
	- double check if more comment code can be pulled out from BinaryTypeModelRuleDefinitionHandler and ComponentModelRuleDefinitionHandler

+review REVIEW-5127