Added Generics (TSC 1.0)

Giving this another shot now that TypeScript 1.0 is released. This is being used in a rather large backbone.js project. Here are some breaking changes for the consumer code:

- The `extend` class is set as private. Use TypeScript class syntax to extend Model, Collection, View and Router.
- All code that inherits from backbone classes have to define generic parameters in their declarations.
- Have to use `typeof` keyword when assigning model type for a Collection. For example (from backbone-tests.ts):

```
class Library extends Backbone.Collection<Book> {
    model: typeof Book;
}
```

I will close the [old](https://github.com/borisyankov/DefinitelyTyped/pull/894) pull request.