Allow TypeScript 2.9.1 accept tagged template type argument
Allow TypeScript 2.9.1 accept tagged template type argument

This change is a workaround for TypeScript issue (Microsoft/TypeScript#24449) that prevents passing type argument to tagged template.
The workaround is simply consolidating overloads into one.

With this PR and TypeScript 2.9.1 it will be possible to write:
```ts
const Title = styled.h1<{ size: number }>`
  font-size: ${p => p.size}em;
`
```
and it will be fully type-safe,
styled-components/styled-components,styled-components/styled-components,css-components/styled-components,styled-components/styled-components