Make SMTP system much more flexible

This includes the addition of an Email type, which simplifies the
process of sending templated emails. This will be used in the future for
the message system.

Ref #89
Draggable node when still placing the node
Fix some accidental database problems

These were pointer related problems in DB.GetNode() and
DB.DumpChanges().
New way to add nodes! -- dev

Still in development because it's like midnight
and I'm sleepy so I mean there might be something
wrong with it and I haven't..I lost my train of
thought becuase someone said something in IRC.
Add API messaging endpoint

This will allow users who successfully complete a CAPTCHA to send an
email (using NodeAtlas's SMTP server) to the email address owned by a
local node. The email address is never exposed.

The front end for it is not yet implemented at all.

Ref #89
Merge branch 'development' of github.com:ProjectMeshnet/nodeatlas into development
Remove unnecessary debugging line in captcha.go
Implement sync to improve graceul shutdown

This is a somewhat technical change, but hte summary is that the main
routine now uses a sync.Cond to wait until it is interrupted to shut
down. The HTTP server now listens in its own goroutine and will not
report errors if ignoreServerCrash is true.

Close #97
Fix bug preventing caching

This involved the incorrect prepending of Conf.Web.Hostname rather than
"http://". Now, Conf.ChildMaps expects fields to be prefixed with the
appropriate protocol, such as "http://" or "https://".
Version 0.5.1