Make associative_create_statement protected rather than private

Make associative_create_statement protected rather than private, so it can be accessed by subclasses.  This makes it easy for subclasses to add custom fields to the impression.

The use case I'm solving is when a controller needs to add a custom attribute to the impression when it's created.  To do this now I need to cut and paste the whole of the method, and then make my changes.  By making this method protected I can simply reference super and add the fields I require in my overridden method.

Not really much to test here, so there are no new specs.  But all existing specs pass.