current definition
```ts
scope(options?: string | string[] | ScopeOptions | WhereOptions): this;
```
doesn't allow are valid calls. example from [documentation](http://docs.sequelizejs.com/en/latest/docs/scopes/):
```ts
Project.scope('random', { method: ['accessLevel', 19]}).findAll();
```
changing it to
```ts
scope(options?: string | ScopeOptions | WhereOptions | Array<string|ScopeOptions|WhereOptions>): this;
```
should fix the issue since, according to the docs
```ts
// These two are equivalent
Project.scope('deleted', 'activeUsers').findAll();
Project.scope(['deleted', 'activeUsers']).findAll();
```
* Use PartialObject for object predicates
* Add typescript version
* Update lodash module generator and update modules to TypeScript 2.1
* Use Partial to define PartialObject, fix LodashStatic.find
* Use PartialObject as predicate in lodash.filter
* Add TS2.1 header to bookshelf, lodash-decorators, lodash-es, sequelize/v3, sequelize, sequelize-fixtures, and umzug
* Use "lib" in tsconfigs instead of "target".
Only add "dom" to libraries that need it. This is determined by a script, so many libraries that have "dom" maybe should not.
* Update new-package and readme
* Add back "target" where necessary