Adding endpoint for log retrieval on the minion

Adding logic for retrieving logs from docker containers.
Usage:
To returns snapshot of the logs:
`curl http://10.245.2.2:10250/containerLogs?containerID=c93b7770a0b6`  

 To tail 15 lines of logs:
`curl http://10.245.2.2:10250/containerLogs?containerID=c93b7770a0b6&tail=15`

To stream logs:
`curl http://10.245.2.2:10250/containerLogs?containerID=c93b7770a0b6&follow=1`

Related: 
https://github.com/GoogleCloudPlatform/kubernetes/issues/1235#issuecomment-55188947


----- Original Message -----
> > @@ -143,7 +145,45 @@ func (s *Server) handleContainers(w
> > http.ResponseWriter, req *http.Request) {
> >  
> >  }
> >  
> > -// handlePodInfo handles podInfo requests against the Kubelet.
> > +// handleContainerLogs handles containerLogs request againts the Kubelet
> > +func (s *Server) handleContainerLogs(w http.ResponseWriter, req
> > *http.Request) {
> 
> I'm not suggesting a specific implementation yet.  I'm just asking what you
> expect to happen when:
> - user 1 tries to GetKubeletContainerLogs(...) with opts.Follow = true
> - user 2 tries to do something else.
> 

Each http request is its own goroutine - at some point we may want to limit log retrievals via some rate limit / high water mark, with maximum timeouts, but we can *probably* layer that.