Automatic merge from submit-queue.
release-1.7: Update boilerplate for 2018
**What this PR does / why we need it**:
This is an attempted carry of @nikhita's PR, #57796.
This is acts a cherry pick of #57735.
**Note**: This is not an automated cherry-pick since lots of things have changed since 1.7 and a cherry-pick leads to lots of conflicts in the generated files.
This also unblocks further client-go 4.0 releases. (see #57245)
**Release note**:
```release-note
NONE
```
Kubernetes-commit: 7d64fdfca8c5bdc8e76ed7f3f037e20711758672
Automatic merge from submit-queue.
Ensure network policy conversion round trips nil from fields
Fixes#53906 (inability to apply network policies against v1 in 1.7)
* Changes non-mutation check to API equality (which treats nil and [] slices identically)
* Fixed bug in manual conversion that took an input of `nil` and produced an output of `[]`
```release-note
Restores the ability to apply network policy objects against the networking.k8s.io/v1 API
```
Kubernetes-commit: 153119474bdb8875e2d4773df156cf6374fd29c4
Automatic merge from submit-queue.
Automated cherry pick of #52710 upstream release 1.7
This is necessary to consistently publish the release-1.7 branch of the staging/ repos, compare https://github.com/kubernetes/kubernetes/pull/52710.
Kubernetes-commit: 5314e9bafc2a2ed0cb8de2bebe1b5e84b6b3c9ff
Automatic merge from submit-queue.
Automated cherry pick of #53239
Cherry pick of #53239 on release-1.7.
#53239: Correct APIGroup for RoleBindingBuilder Subjects
Kubernetes-commit: 1a4c2bfb8e06eb64c8c3e05657a25fb3a6e6789b
Automatic merge from submit-queue.
Automated cherry pick of #50012
Cherry pick of #50012 on release-1.7.
#50012: use specified discovery information if possible
```release-note
custom resources that use unconventional pluralization now work properly with kubectl
```
Kubernetes-commit: dd388c7e9bb7e85257424761541e57a297d89de9
This plugin acquires a fresh access token for apiserver from Azure Active
Directory using the device code flow. The access token is saved in the
configuration in order to be reused for upcomming accesses to appiserver.
In additon the access token is automatically refreshed when expired.
Kubernetes-commit: 682d5ec01f37c65117b2496865cc9bf0cd9e0902
Remove kubectl's dependence on pkg/api/helper, as part of
broader effort to isolate kubectl from the rest of k8s.
In this case, the code becomes private to kubectl; nobody else uses it.
**Which issue this PR fixes**
Part of a series of PRs to address kubernetes/community#598
**Special notes for your reviewer**:
**Release note**:
```release-note
NONE
```
Kubernetes-commit: 5a9b06b717805ad47da1edda6018fea107ac4ce9
client-go/pkt/util was removed in favor of client-go util, which consists
only from CodeExitError and ExitError interface
Kubernetes-commit: 8574bc564f4c54aa964d6c0c7ccec3202d9e2f1b