Add and validate namespace to pod, service, replication controller objects

Next iteration in delivering code against the integrated namespaces proposal, the PR adds the following:

1. Add Namespace to Pod, Service, ReplicationController objects
2. Enforces Namespace is set prior to persistence
3. Enforces context.Namespace on create and update operations matches resource.Namespace

Feedback welcome.

I learned something new about Go type assertions in the process.
In order to actually return a tuple, I need to do the type assertion in an assignment.
https://golang.org/ref/spec#Type_assertions
This must be why the idiomatic form documented in this article 
http://blog.golang.org/context

defines functions like:

```
func FromContext(ctx context.Context) (net.IP, bool) {
    // ctx.Value returns nil if ctx has no value for the key;
    // the net.IP type assertion returns ok=false for nil.
    userIP, ok := ctx.Value(userIPKey).(net.IP)
    return userIP, ok
}
```