Google style

Looking through the recent progress.

Some stylistic notes/questions:
1. There are several functions with default values. (GCSG is concerned with them only because of function pointers. Do we have to be concerned about them as well?)
2. GCSG comments mostly start with uppercase, but our comments aren't consistent. Should we follow GCSG?
3. Our commenting formats are inconsistent. Multi-line comments /*  */ or // ? (or any)  GCSG prefers //.
Can you look into whether 4 spaces is right here?  Thanks!