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
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
Fixed a flaw with sorting
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??)
Removed effects.halo.Add for good.
Halo module improvements

Fixes the rendering of some brush-based entities causing the screen to
turn black. They're still a little iffy aesthetics wise, but they work.

Optimised a tad, it's 2fast now.

The visual output for props should be identical to before.
Fix formatting

Fix up the formatting also remove "Acecool"
Remove semicolons
Get rid of unnecessary global PANEL vars.
Adds net.WriteBool / net.ReadBool

The people deserve this!
net.lua: Write/ReadType now use Bool functions
Merge pull request #707 from DaaOtt/patch-2

PrintTable now sorts its keys
~~ airy ~~