Bugfix: we need to call _wrap_value recursively on HyExpressions.

The first commit message gives an example of the problem. This is related to #613, though I'm not sure it qualifies as a fix - the specific exception that is being thrown in the @Kodiologist's example is fixed, but @algernon's still throws the stack overflow exception on python 2 (python 3 seems to be okay).

There are a few more bugs probably lurking in this code that I haven't addressed yet:

* There needs to be a default case for types that really don't belong in expanded macros (e.g. sockets) -- This is an error on the part of the user, and shouldn't be reported as a compiler bug, which I suspect it will be as is.
* I'll bet we're missing some types we should be wrapping (generators?)
Can't you write this(and probably the other checks) like `assert isinstance(wrapped, HyInteger)`?