Remove the Budget API

The API hasn't been adopted by developers leading to practically zero
usage. Given that there isn't a clear path to interoperability either,
let's remove it. This has been approved per the following Intent to
Remove on blink-dev:

https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/18r3whCBv0I

The specification draft has been updated to mention its obsolescence:

https://wicg.github.io/budget-api/

There are a few bits of browser-side budget-related code that are being
used by push messaging. This CL also moves the relevant class
(BudgetDatabase) to the push messaging directory, and updated it to
maintain logic, while removing the dependency on the Mojo types.

Bug: 873540, 874450
Change-Id: I98dcefe5b4333b969dd3c9bd4c09e9aaf9d65579
Reviewed-on: https://chromium-review.googlesource.com/1176083
Commit-Queue: Peter Beverloo <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Reviewed-by: Steven Holte <[email protected]>
Reviewed-by: Philip Jägenstedt <[email protected]>
Cr-Commit-Position: refs/heads/master@{#584418}
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.h b/chrome/browser/push_messaging/push_messaging_notification_manager.h
index 6b5079f2..dfe67f6 100644
--- a/chrome/browser/push_messaging/push_messaging_notification_manager.h
+++ b/chrome/browser/push_messaging/push_messaging_notification_manager.h
@@ -12,6 +12,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
+#include "chrome/browser/push_messaging/budget_database.h"
 
 class GURL;
 class Profile;
@@ -96,6 +97,8 @@
   // Weak. This manager is owned by a keyed service on this profile.
   Profile* profile_;
 
+  BudgetDatabase budget_database_;
+
   base::WeakPtrFactory<PushMessagingNotificationManager> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(PushMessagingNotificationManager);