Modified the `Unmarshaler` interface to `.UnmarshalTOML(v interface{})`

- the use of `map[string]interface{}` precludes passing other types via an interface{} to the `UnmarshalTOML` method
- removed type check for `map[string]interface{}` in `func (md *MetaData) unify`
- updated test
- updated example
- modified example to use a private slice of interface and added detailed comment in example