Refactor NodeProvisioner to allow for extension of strategies

Javadoc will not accept nested classes without FQNs in my experience.