The calculation of second-order molecular properties at the configuration interaction level of accuracy