Add hash goodies, and name::hash()

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add more tests

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add S-expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>