Generalize cppint into a c_literal function for all literals

This removes some scattered duplicate code, and adds support for
suffixed floating point literals like 3.0f which aren't valid python.