Custom actions and categories for BroadcastReceiver

`android.broadcast.BroadcastReceiver` now accepts user-defined actions & categories, opposed to only default ones as before. Detects by checking the presence of '.' on the name of it. Its a backwards-compatible change.

The code on the 1st commit works, and was refactored on the 2 others. Feel free to stick with the maintainers original style by cherry-picking only the 1st commit if the refactor is disliked.