Crm 13067 bao prep - standardisation of bao inputs

CRM-13067 is a fairly significant restructure of 'membership payment related action moved to the membership payment bao & available through api & form layer in a standardised way).

I think that it is not achievable for 4.4 but am working on some tidy up commits that cause the various create functions to follow the standards agreed per http://wiki.civicrm.org/confluence/display/CRM/Database+layer

In particular when we discussed this we agreed that ids would be passed in the params array (which is available via the api) rather than as ids (which needs to be hard-coded into the api layer - & is inconsistently done leading to inconsistentcies between api & bao / form behaviour). 

We have been making the ids arrays optional for a while & this does more of that. I want to sync the api & bao behaviour so I can write tests for the api to ensure behaviour doesn't change as I chip away at this