Add a generic proxier

To proxy traffic to anything that implements ResourceLocation.
Currently, this is only services. This is easily extensible to minions
(would supercede existing mechanism) and pods.
Rewrite proxy code for clarity and correctness.
Extend proxy test to test all URL rewriting cases.
allow proxy to accept a listen address.  fixes #1220
changed address variable to bindAddress.  Used net.JoinHostPort() instead of fmt.Sprintf()
Add explicit flag to use openvswitch
Merge pull request #1208 from derekwaynecarr/detangle_networking_from_os

Detangle the use of a Red Hat OS family as requiring openvswitch
Merge pull request #1105 from lavalamp/proxy

Add a generic proxier
Fix build
Merge pull request #1214 from lavalamp/proxy

Fix build
Passing pod UUID to Kubelet.
Support configurations for cloudproviders

Cloud providers may need specific configurations to run properly (e.g.
authentication parameters, uri, etc.).

This patch adds the simplest implementation for passing configurations
to cloudproviders: a new apiserver -cloud_config flag to specify the
path to an arbitrary configuration file.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
Merge pull request #1199 from dchen1107/cleanup

Passing pod UUID to Kubelet.
Merge pull request #1160 from simon3z/master

Support configurations for cloudproviders
Rename all XStorage types to REST for clarity
Add a pointer to Circle CI instructions.
Merge pull request #1217 from lavalamp/fixApi

Rename all XStorage types to REST for clarity
Return standard API errors from etcd registry by operation

Adds pkg/api/errors/etcd, which defines default conversions
for common CRUD operations from etcd to api.
Merge pull request #1192 from smarterclayton/standardize_etcd_errors

Return standard API errors from etcd registry by operation
Release Kubernetes v0.2

This commit will be tagged with a v0.2 annotated git tag.

Tested:
- Created a git tag for it, built it and checked output of -version:

    $ git tag -a -m 'Release Kubernetes v0.2' v0.2

    $ make
    hack/build-go.sh
    Building local go components

    $ _output/go/bin/kubecfg -version
    Kubernetes version 0.2, build b47f9af5c9ea770973be1b001adaffbdfcb08618

    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2", GitVersion:"v0.2", GitCommit:"b47f9af5c9ea770973be1b001adaffbdfcb08618", GitTreeState:"clean"}

- Made sure hack/test-go.sh and hack/test-cmd.sh still pass.

Fixes: Issue #1018

Signed-off-by: Filipe Brandenburger <filbranden@google.com>