Reworked cross linking 

Cross Linking was broken in a lot of ways. I think that my changes make cross linking very solid now. My implementation removes the need for the hashCrossLinks setting.  Basically, if crossLinks is enabled, its enabled across the board. If hashNames is enabled, then you can use both #3 and #hash-names. This makes things very flexible. 

I have fully tested this with hashLinks enabled and disabled.