Bug 1089464 - [Smart Screen][Home]Launch card directly from smart home

To be able launch app from Smart Home directly, with some more unit tests also.

https://bugzilla.mozilla.org/show_bug.cgi?id=1089464
@evelynhung suggest me to remove `CLASS_NAME`, and instead to use `instanceof` to do type comparison in 
https://github.com/mozilla-b2g/gaia/pull/25477#discussion_r19529932

Use static counter for `_id` seems to be a good idea. I'll try that. Thanks