feat: Prevent Nested Network Behaviours
See also https://github.com/vis2k/Mirror/pull/2868
Uses OnValidate and Reset to prevent users from adding components that would conflict that Unity can't catch on its own:
- Changing a MonoBehaviour to a NetworkBehaviour after adding it to an object (Adds NI if possible, or removes it)
- NetworkBehaviour in same object hierarchy as NetworkManager
- NetworkBehaviour where the NetworkIdentity is elsewhere in the object hierarchy (prevents nesting)
Kudos, SonarCloud Quality Gate passed! 
0 Bugs
0 Vulnerabilities
0 Security Hotspots
2 Code Smells
No Coverage information
0.0% Duplication
see comment on https://github.com/vis2k/Mirror/pull/2868 is this still needed then, assuming we can never have two NetworkIdentities in children without it throwing an error?
The point of this PR and #2868 is to block the user at design time, instead of waiting until play mode / run time.