Fairpoint, union agree to end strike