typed.go
func (t Typed) StringsIf(key string) ([]string, bool) {
	value, exists := t[key]
	if exists == false {
		return nil, false
	}
	if n, ok := value.([]string); ok {
		return n, true
	}
	if a, ok := value.([]interface{}); ok {
		l := len(a)
		n := make([]string, l)
		var ok bool
		for i := 0; i < l; i++ {
			if n[i], ok = a[i].(string); ok == false {
				return n, false
			}
		}
		return n, true
	}
	return nil, false
}
func (t Typed) StringsIf(key string) ([]string, bool) {
	value, exists := t[key]
	if exists == false {
		return nil, false
	}
	if n, ok := value.([]string); ok {
		return n, true
	}
	if a, ok := value.([]interface{}); ok {
		l := len(a)
		n := make([]string, l)
		var ok bool
		for i := 0; i < l; i++ {
			if n[i], ok = a[i].(string); ok == false {
				return n, false
			}
		}
		return n, true
	}
	return nil, false
}
// Returns a string slice + true if valid
// Returns nil + false otherwise
// (returns nil+false if one of the values is not a valid string)