Bug 1076706 - [Smart Screen][Home] Implement card listing and launching function

Please review only the commit of Bug 1076706, because the base (bug 1076702) has not landed yet

https://bugzilla.mozilla.org/show_bug.cgi?id=1076706
Just an idea: could we use `card instanceof SmartApp` to avoid using another variable to record object type? I'm not sure if it fits in our inheritance case.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof