[DevTools] store primary UISourceCode in breakpoint instead of projectId

Breakpoint uses primary UISourceCode to set fake breakpoint location and
to track lifetime of breakpoint in UI.
As long as primary UISourceCode exists, we show all breakpoints related
source decorations, when primary UISourceCode is removed, we remove all
decorations and move breakpoint to temporary storage (provisional
breakpoints). As soon as new UISourceCode with breakpoint url is added
we update breakpoint state and restore decorations.

+ migrated Storage to Map.

R=dgozman@chromium.org

Bug: chromium:767571
Change-Id: Ic700d53149e58c912668f954a141f8584713d794
Reviewed-on: https://chromium-review.googlesource.com/915133
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536405}
11 files changed