Added the ability to define a default account id.

Summary:
The object of this diff is to remove the need to define parent_id whenever
instantiating an adobject (if you want to create).

This allows developers to define a default account much like defining
a default api object. While this case is not going to be useful for larger
partners, I think it will be valuable and more intuitive for development tier
devs (thus making it easier for them to get started).

FacebookAdsApi.init(app_id, app_secret, access_token, account_id)

OR

FacebookAdsApi.init(app_id, app_secret, access_token)
FacebookAdsApi.set_default_account_id(account_id)

    ad = AdGroup()
    ad['name'] = 'blah'
    ad['campaign_id'] = campaign_id
    ad.remote_create()

As this is additive, devs who still want to define the account ID still can.

Test Plan:
The bootstrap has also been improved, so if your config.json is fleshed out:

python -i facebookads/bootstrap.py

c = AdCampaign()
c['name'] = 'foo'
c['status'] = 'PAUSED'
c.remote_create()
Fix AdAccount object needs an id error

Summary: Fix T5697349 facebookads.exceptions.FacebookBadObjectError: AdAccount object needs an id for this operation.

Test Plan: python custom_audience_utils.py --list
Added get_by_ids() method to AbstractCrudObject

Summary:
Added get_by_ids() method to AbstractCrudObject, allows user to fetch an array
of the same type of object

Test Plan:
```
>>> foo = AdSet.get_by_ids(ids=['6021168043468','6021036224668'],fields=['name'])
>>> foo
[<AdSet> {
    "id": "6021036224668",
    "name": "AdSetTestCase 153"
}, <AdSet> {
    "id": "6021168043468",
    "name": "My AdSet"
}]
```
Fixed remote_delete() erroring out when id field is not defined (user did not call remote_read())

Summary:
New updates to change history broke remote_delete in a common use case (just
plain deleting against an ID)

Test Plan:
instantiate an object with only fbid and delete it, should work (or
run tests)
Fix issue with missing parent_id and setting default parent id to null

Summary:
Missing parent_id attribute was causing tests to fail.
Resetting default parent id to None was also causing it to fail

Test Plan: run tests, profit
ABSOLUTE_OCPM changed to  upper case as required by our api

Summary: BidType constant was lower-case and that impeded to create a local awareness adset on an example i'm creating

Test Plan:
execute the local_awareness.py file putting your adaccount in the 'env' variable. it should fail. apply this patch and it should work.

content of the script: https://phabricator.fb.com/P18123548
Added autocomplete endpoint

Summary: Allow users to access the autocomplete endpoint using the SDK.

Test Plan:
You can do this in the REPL
```
ac = AutoComplete(parent_id='act_11124366')
print ac.remote_read({
    'q': 'United States',
    'type': AutoComplete.Type.adcountry,
})
```
params['fields'] not defined properly when fields parameter not provided

Summary:
Refactored some fields handling code and introduced a bug that would sometimes
result in params['fields'] to be completely undefined.

Test Plan: run tests
Repair adgroup integration test.

Need to set `adgroup_status` in order for adgroup creation to succeed.

Need to clear history in `remote_create()`, otherwise subsequent
`remote_update()` tries to set the same fields. This especially fails
trying to update adgroup status while it's under review.