Updated compiler specifics macros to be easily overridable
Improve visit mechanism to optionally book-end visiting. Also increased the unit test coverage for visit
Unit test for make_ref_type (the awkward make distinguishes it from make_ref function)