Merge tag 'v1.5.0' into release

Tagging release 1.5.0 (now contains the Scallion plug-in)
Merge commit 'v1.5.1' into release
Merge commit 'v1.5.1' into release
Merge tag 'v1.6.0' into release

tagging release 1.6.0
Fixed scallion build on 32bit machines

fixes #96
Stop preloading EVP_Cipher by default

Preloading EVP_Cipher() is causing MAC errors on some machines with a
specific cipher mode that requires padding. Our memmove implementation
doesn't handle padding. There is a new option in the setup.py script for
enabling the preload for machines in which the padding bug is not
triggered.

Fixes #97

cherry-pick

Conflicts:
	CMakeLists.txt
smarter Tor version number check
cleanup cmakefiles

tried to clean up cmake files slightly. turned on some cmake options.

fixes #91
Removed deprecated uses of g_strcasecmp and g_strncasecmp

fixes #93
Cleanup format string warnings, use g_ string funcs
Towards new threading model

Added new concurrent utilities and abstracted the node event queue.
The "tree of queues" design is implemented, but not currently used in
this version because I'm skeptical that it actually improves anything
over a simple async pqueue. I'm adding it so a version of the code
exists, although some fixing is needed if that design is wanted in the
future.

refs #88
Simplify, clean up new eventqueue

refs #88
Expand ~ to user's home directory when looking up preload path
Update glib timestamps to remove unsupported %N
Add new minimial scallion topology

This minimal network has 1 client and 5 relays and 1 server. The client downloads a 1 MiB file 10 times. This is the smallest network that should always complete successfully, and is very useful when testing new changes to code and debugging issues.
Don't implicitly bind and already bound port.
Assign nodes to worker threads, remove thread pool

The old model allowed nodes to run in different threads for any given event. This causes inconsistent address space issues. For example, if a node stored an address of a function while running in the context of one thread's plugin, and later tried to call the function at that address while running in a different thread's plugin, it would call into the first threads address space and interfere with the other node's state.

By assigning virtual nodes to specific threads, they will always execute in the same plug-in context and should avoid these issues.

refs #56
Fix fundamental multi-threading issues in Shadow

-Instead of allowing every node to run on every thread, assign
nodes to a thread that will handle all events for that
node. That assigned thread becomes the 'owner' of the node.
-No longer use thread pools, but real worker threads
-Build tor with --disable-threads
-Proper thread synchronization and cleanup

refs #56

Conflicts:
	src/node/shd-node.c
	src/node/shd-node.h
	src/topology/shd-internetwork.c
Dont free application in node_free
Update tor to 0.2.3.25