Use s(:int) and s(:float) for numerics in AST (#305)

This changes from using a s(:lit) for numerics, and gives each node
its own proper type. Specs updates to reflect changes.