Hi,
As for "new" operator, Leaflet normally provides you with factories which should cover all cases where you would be tempted to use "new" with a constructor.
That is why you have factory "L.geoJson" but constructor "L.GeoJSON" (which you can avoid).
As for plugins compatibility with Leaflet version 1.0, as you figured out most of them need a different version as well.
Some of them use a different branch (in the case of Leaflet.label, it is called "leaflet-master"), whereas the "master" branch is kept for Leaflet stable (version 0.x).
In the case of Leaflet.label plugin, the JS file that you should use is built from the "src" folder, and normally available in the "dist" folder (together with the CSS file).
Note that you should avoid using the files from
github.io for production, as there is no guarantee that they would be always available.
You should download them and serve them from your host server.
Now there is a common practice not to make available "dist" files directly on GitHub repository, as soon as "src" files and build process are available.
The rationale is that "dist" files would need to be updated with every commit, which makes the repository very big quickly.
The drawback is that they are no longer easily downloadable by developers who do not have access to a build environment (Node).
If you really need Leaflet.label with Leaflet 1.0, you should either look for someone who can build for you the dist file from leaflet-master branch (or who has already done so and can transfer to you), or install Node and learn the basics.
Good luck!