Fix addContextProvider()

Update addContextProvider() so it prepends new items into the list of
providers. This makes it easier for userland additions that customize
EntityContext or ArrayContext. Tests were added for the replace and
augment scenarios.

Refs #4967
Merge pull request #5004 from cakephp/issue-4967

Fix addContextProvider()