Added single output type matching to automatching

If you use the auto matching feature, the adv wire tool will now attempt
to find a single output on the target entity with a matching type, if no
output with both matching name & type is found.
Custom wire world tips

Wiremod now has custom world tips
E2: Customizing world tip

E2's world tip overlay is now customized, complete with fancy percent
bars!
Rounding the position on the custom overlay

Because that smoothed it out a lot
Also, newline
E2: Added Constraint creation functions
Closes #499
Added ops costs to propcore
Improved the Sound browser and added new outputs to the Sound Emitter
Cleaned up some of the overlay code

And hopefully fixed E2's overlay erroring by making the engine send the
convars to the client

Fixes #614
New better BeingLookedAt func for all wire ents

This function determines when the overlay will appear. I made one that's
better than garry's default one.

Also got rid of this weird base_gmodentity constant and used
self.BaseClass instead
Fixing E2 overlay

Fixing E2 overlay for real this time
More overlay code cleanups

Fixed wire entities with no overlay text (aka set to nil) causing
errors.

More overlay code cleanups.

Fixed text alignment on the E2 overlay (it looked fine on my computer,
but it was slightly off on other servers - switched from using fixed
values to surface.GetTextSize, should look the same on all servers now)
Merge remote-tracking branch 'upstream/master'
reverting a change from a few commits ago

Fixes #617
Made E2's overlay width depend on content

Made E2's overlay width depend on the width of the ops and percent text,
and not only the name of the E2.
Made wire overlays only send data when necessary

Wire overlays have always been smart: wire entities would only send
their overlay data to the player who is looking at the wire entity.
Now it's even smarter: wire entities will only send their overlay data
if that data is new to the player looking at it - it'll only send if it
actually changed.
Merge remote-tracking branch 'upstream/master'
Merge pull request #613 from Grocel/master

Improved the Sound Browser and added new outputs to the Sound Emitter
Fixed missing anti-spam checks on certain remoteSetCode functions.
Fixes overlays being wonky if you're inside the entity

Made the overlays find a better position if the position is the same as
the player's camera position. This fixes overlays being wonky if you
noclip inside the entity.
Merge pull request #618 from Th13teen/master

Fixed missing anti-spam checks on certain remoteSetCode functions.