Update winston definitions and tests

A large rewrite, with greater detailed definitions.

**BREAKING CHANGES:** ```winston.Transport``` and ```winston.Logger``` types have been
renamed to ```winston.TransportStatic``` and ```winston.LoggerStatic```
respectively. Instantiating the types still uses the old syntax: ```var
logger = new winston.Logger``` but the return type's name has had "Static" appended.