Allow closing of notifications by clicking on them

Adds a DoClick functions to notification icons made by notification/AddLegacy which changes the time left to display on the notification panel. Useful for when notifications might overlap GUI which is needs to be read or clicked on, but the entire panel is not clickable, which makes you less prone to accidentally close the panel.
Example: http://gyazo.com/15ebbcf7c769a127eee247ad49719c35.gif
Added SetMaterial to DImageButton

from DImage
Materials are now cached again

with DImageButton's inclusion of SetMaterial this now will work
SetMaterial updated
Updated DComboBox

Added
* PANEL:GetOptionData( id ) returns data of id
* PANEL:GetSelectedID() returns id of currently selected
* PANEL:GetSelected() returns text,data of currently selected item
TTT: Fixed eye angles being odd when switching players with LMB after exiting propspec.

After exiting propspec, it is likely that your eye angles will be at odd angles. When pressing the LMB to switch to a random player, these eye angles were still set so you will likely be spectating with an awkward roll.

This fix resets the eye angles whenever you press the LMB while spectating.
prevent player getting killed if spawnpoint is too close to world origin
PrintTable now sorts its keys

For greater readability/consistency between prints
string.Trim, TrimLeft, TrimRight optimizations

And removed a few stray characters in string.Explode & Replace
draw.DrawText optimizations
Fixed a flaw with sorting
Fixed some unimportant code issues
Made 'tool.pulley.3' different from 'tool.pulley.0'

it can get a bit confusing for some people so i changed it.
Added DListView_Line SetSortValue

Does what it says, allows you to have a different value for sorting
rather than the text.
Added position parameter to AddColumn

Also removed the unused SetMaterial method for Columns. (what is it even
supposed to do??)
TTT: set inflictor for telefrags
Merge branch 'master' of github.com:garrynewman/garrysmod
TTT: attribute vehicle kills to the driver
TTT: send client player roles after entity init

Based on pull request by Bo98 #683
Merge pull request #688 from Bo98/ttt_spectate-eyeangles-fix

TTT: Fixed eye angles being odd when switching players with LMB after exiting propspec