Rewrite the api to make it more friendly

- [new] Provide defaults for Next Gen products
- [new] Better API (thanks @paulrobertlloyd for pointing out the first version was not practical)
- [new] Improved architecture

### Example for Next Gen Web

```scss
@import '_webfonts';

// Next Gen Webfonts
//
// - Egyptian, Text Egyptian and Text Sans use medium font for bold font-weight
// - Egyptian uses semibold font for ultrablack (900) font-weight

@include guss-webfonts(
    (
        'Guardian Agate Sans 1 Web': (
            (weight: 'regular', style: 'normal'),
        ),
        'Guardian Text Egyptian Web': (
            (weight: 'regular',  style: 'normal'),
            (weight: 'regular',  style: 'italic'),
            (weight: 'medium',   style: 'normal', use-as: (weight: 'bold', style: 'normal')),
            (weight: 'medium',   style: 'italic', use-as: (weight: 'bold', style: 'italic')),
        ),
        'Guardian Egyptian Web': (
            (weight: 'light',    style: 'normal'),
            (weight: 'regular',  style: 'normal'),
            (weight: 'semibold', style: 'normal', use-as: (weight: 'ultrablack', style: 'normal')),
        ),
        'Guardian Text Sans Web': (
            (weight: 'regular',  style: 'normal'),
            (weight: 'regular',  style: 'italic'),
            (weight: 'medium',   style: 'normal', use-as: (weight: 'bold', style: 'normal')),
            (weight: 'medium',   style: 'italic', use-as: (weight: 'bold', style: 'italic')),
        ),
        'Guardian Sans Web': (
            (weight: 'light',    style: 'normal'),
        )
    )
);
```

![ ](http://media.giphy.com/media/Z6f7vzq3iP6Mw/giphy.gif)
Ta!

Here, I thought about having an arglist but then it would probably not be a good thing since expected types are `{String | List | Map}`.