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.
Fixed overlays not showing if it has no text

Custom overlays without text wouldn't show up. This fixes that.

Also fixes a bug with the sync code where it'd try to sync the data of
the wrong entity.
Added custom overlay to wire colorer

Custom overlays, woop
Also cleaned up the code and fixed a few bugs which, strangely, no one
has noticed before (the vector input didn't work, the color output would
stop updating if you aimed it at an invalid entity, etc)

The old timers deserve some love, too
shh

you didn't see this
Fix #621. Make balloon spawner checks safer.
Fix #575. Fix CPU editor error adding breakpoint.

Don't show the 'add/remove breakpoint' option if there's no breakpoint
selected, additionally make the add/remove breakpoint functions harder to
break in the future.
Removed OnEntityCreated "temporary" workaround

"Nothing is more permanent than a temporary solution."
Merge pull request #622 from Python1320/patch-3

Removed OnEntityCreated "temporary" workaround
E2 overlay: fixing setName trying to add ops nums

Fixing setName trying to add ops numbers back to the overlay, which is
no longer necessary thanks to the custom overlay
E2: Added E:setRenderMode(RENDERMODE enum)
Suggested by @Lambda217
Useful for altering alphablending mode or adjusting draw order of entities
Fixes #625 (contains examples of usage)
E2 tables: fixed clipTo/FromTypeid not setting size

And made index functions decrease size when writing nil values
fixed ranger hull crash

Fixed a way to crash servers using rangerHulls. Thanks to njits for
finding it.
fixed percent bar misalignment when at 100% ops

fixed a small misalignment
Fixed ranger length clamping with large distances

If you gave one of the E2 functions a huge distance, it would end up in
the wrong place. This clamps the distance correctly.

Fixes #631
E2: Added tickInterval

Returns the time in seconds between server ticks
Modified ply:keyPressed(str), fixed runOnKeys

Modified ply:keyPressed(str) so that it now accepts mouse keys as well.
Fixed runOnKeys so that it detects ALL keypresses.
Added keyClkPressed() which returns the key that was pressed as a string
(ply:keyPressed(str) conveniently accepts the exact same strings this
returns).
Cleaned up the sound library and added anti spam

Anti spam uses a burst, like most other anti spams in E2 (such as the
find library).
The burst limit is 8, and the burst interval is 0.1, by default.
Fixed Lua error when duping an E2 with compile errors

Thanks to shadowscion for reporting it.
Fixes #640
Should fix non-wire props having wire in/outputs

Untested fix, read more in issue thread

Fixes #626