Define the association extensions without need to have a builder
instance
Make valid_options a class method
Make validate_options a class method
Move macro to class level
Move wrap_scope to class level
Remove unneeded reader
Extract the scope building to a class method
Remove builder instances

All the job can be done at class level so we can avoid some object
allocation
Method visibility will not make difference here
Merge branch 'builder-instances'