Permit macros to return constants

This is mainly a pretty obvious bug fix. The open question is the way constants of type `list` are treated. In this fix they become constants of type list, which is consistent with how Hy handles lists elsewhere. But in Lisp, constructing and returning a list is the main way to construct s-expressions. Most Lispers would thus expect a list constant to become a `HyExpression`.

Right now there is no way in Hy to construct s-expressions programmatically from a macro (unless I overlooked something). I propose that we do provide such a way, but don't call it `list`. Something like `expr` would do fine.