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
`App` (or `SmartApp`), `Deck` and the temporary `FakeDeck` are all derived from `Card`. I think we should treat all these types as `Card`. so it would be nice to use same interface (aka. `Card`) to manipulate these types. That's why it has 
```js
FakeDeck.prototype = Object.create(Card.prototype);
```
And I'll put generic method in `Card.prototype` in the future.