Fundamentals of Neutron Diffraction