Add DocumentMarkerList interface and GenericDocumentMarkerListImpl

Based on step 3 of yosin's plan:
https://codereview.chromium.org/2812423002#msg7

This CL does the following:

- Introduces a DocumentMarkerList interface

- Introduces GenericDocumentMarkerListImpl, an implementation
  of DocumentMarkerList that works for all marker types and is implemented on top
  of DocumentMarkerListEditor

- Refactors DocumentMarkerController to use GenericDocumentMarkerListImpl instead
  of using DocumentMarkerListEditor directly

BUG=707867

Review-Url: https://codereview.chromium.org/2820633002
Cr-Commit-Position: refs/heads/master@{#467549}
9 files changed