Add shadow support for registerReceiver with permission

Permission restriction has been added to registerReceiver / sendBroadcast.
Intents will only be broadcasted to receivers that has matching
permission. If null is provided then it will simply mean no permission
is required.

Posting the BroadcastReceiver on a provided Handler has also been
added.  If you provide a Handler when registering your receiver that
receiver will be notified from that Handler.  Otherwise the main
application Handler will be used.

Added necessary tests to exercise this new support.