Refactor Config labels, fix #286

1.    Fix #286: Fix Config with nil Labels
    
    - Fix nil Label case
    - Remove mergemap.MergeMap() dst auto allocation
    - Improve mergemap tests and its readability
    - Re-enable AddConfigLabels test for Unknown Generic Object having Labels field

1.    Refactor Config obj.Labels to use meta.Accessor

1.    Move mergeMaps() into its own pkg as `pkg/util/mergemap`.MergeInto()

1.    Add Labels and Annotations to MetadataAccessor
    
    cherry-pick(github.com/GoogleCloudPlatform/kubernetes): 28f5d51a5f6975a575d0cd5157c114878deba2ed

1.    meta_test should not depend on runtime.TypeMeta
    
    cherry-pick(github.com/GoogleCloudPlatform/kubernetes): 508724b1f8431b860f3c35607127a41e70f2f0ed
Good catch! `typ` was meant to be abbr. of `type`, as I saw it in other Godeps pkgs as well (grep for it), and it was quite funny that it matched Czech word :)

The original reason was that I've got a conflict with `t *testing.T` in _test.go files. What other words would you choose to distinguish `t .(type)` and `t *testing.T` vars?