I didn't want to change the api too much, but I would prefer an even simpler version:
leave out Error below - unless accessing single errors is important - and modify flush:
```go
func (e ErrorAccumulator) flush() error {
	if len(e) == 0 {
		return nil
	}
	return fmt.Errorf(
		"%d error(s) decoding:\n\n%s",
		len(e), "* "+strings.Join([]string(e), "\n* "))
}
```
doing so makes the test in mapstructure_test.go fail and I didn't know if something depends on single error access.
If you want this (and this PR in general), drop me a comment.