set: make set types aliases for maps

Simplification based on discussion in #84.

Set types _always_ require initialisation, which can come in the following forms
```
s1 := set.NewStrings() // empty, but initialised
s2 := set.NewStrings("decks", "drums", "rock", "roll") // initalised
s3 := make(set.Strings) // same as s1
var s4 set.Strings // invalid, s4.Add() will panic
```