Using "dot" syntax for shared*, is*, and has* getters

Ran a search against `\[([^\*\]\[]+) (is[a-z_]*)\]`, `\[([^\*\]\[]+) (has[a-z_]*)\]`, and `\[([^\*\]\[]+) (shared[a-z_]*)\]`, replacing them with `\1.\2`.

(Then checked it all over, undid hashChainGeneratedWhatever being converted, and fixed a few spacing mixups.)