Add SMS Middleware layer.

Add fix so ordered broadcasts are delivered to system
apps first in the event of a tie. This works around
the issue where terrible apps steal SMS notifications
from the broadcast queue to simply prevent notifications
that could otherwise be removed by a toggle.

Change-Id: I4fff0c584f8fce9c5f2f4fe86a82fe6480c307c7

Conflicts:
	core/res/res/values/cm_strings.xml
Add permission that allows cancelling notifications from other apps.

Change-Id: I055b17873e174f71174898a7649b1e221fd8c436
Notification cancellation fixes:
Permission should only allow cancellation of other app notifications, not enqueueing.
Fix checkapi breakage.

Change-Id: Idbcfd4617057984250dc4d4fa32ff55bfbb155e2
New Event: ACTION_NEW_OUTGOING_SMS

Change-Id: I8be01ad6251ca25e4d00ebffd876bb6ce7f3c283
Fixes for clang:
PackageInfo is a class, not a struct.
String16 is contained in the android namespace. Do not namespace prefix it
within the android namespace.
Explicitly specify which std classes are necessary to prevent ambiguous
type errors. (map, set)

Change-Id: I0d01477a976e770821ebae8847f8d11b132a15d6

Conflicts:
	tools/obbtool/Main.cpp