title: Viper is not considering the yaml tags in my structs on unmarshalling
body: <p>when I use the <code>Unmarshal</code> method of viper to fill my config structs with the values in my yaml file, some of the struct fields became empty!
  I do it in this way:</p>
  
  <pre><code>viper.SetConfigType("yaml")
  viper.SetConfigName("config")
  viper.AddConfigPath("/etc/myapp/")
  viper.AddConfigPath(".")
  
  err := viper.ReadInConfig()
  // error checking ...
  conf := &amp;ConfYaml{}
  err = viper.Unmarshal(conf)
  // error checking ...
  </code></pre>
  
  <p>And my structs are like this:</p>
  
  <pre><code>type ConfYaml struct {
      Endpoints SectionStorageEndpoint `yaml:"endpoints"`
  }
  
  type SectionStorageEndpoint struct {
      URL       string `yaml:"url"`
      AccessKey string `yaml:"access_key"`
      SecretKey string `yaml:"secret_key"`
      UseSSL    bool   `yaml:"use_ssl"`
      Location  string `yaml:"location"`
  }
  </code></pre>
  
  <p>Here the <code>url</code> and <code>location</code> fields are filled with proper value in the yaml file, but the other fields are empty!</p>
  
  <p>It's wondering that when I try to print a field like:</p>
  
  <pre><code>viper.Get("endpoints.access_key")
  </code></pre>
  
  <p>it prints the proper value in the yaml file and <strong>is not empty</strong>!!</p>