Separating NeighborCoupleable into its own file (closes #3110)