What's the minimum number of sensors for a hobby GPS waypoint-following UAV?
The absolute minimum for a generalized vehicle that needs to know its position and attitude (orientation) in space is one per degree of freedom. This can be reduced if we have information about the natural modes of the system and their stability.

For simplicity, let's assume a vehicle moving in 3 dimensions, that means a total of 6 DoF:


3 coordinates in space to know the position 
3 angles (or similar) to know the attitude


The simplest way to meet these requirements are accelerometers for the XYZ coordinates and gyroscopes for the angles, and these are often packaged together into an IMU. Technically you don't even need an actual GPS as long as you know the coordinates of the starting location, as you can just integrate from it to know your position. This is known as dead reckoning via inertial navigation and it works this way (let's use coordinate $x$ as an example):


You need to know the initial value $x$ and its rate of change: $x_0, \dot{x}_0$
Listen to the values of the $\ddot{x}$ accelerometer.
Integrate the acceleration to obtain the speed: $\dot{x}=\int{\ddot{x}\,dx}+\dot{x}_0$
Integrate the speed to obtain the position: $x=\int{\dot{x}\,dx}+x_0$


Of course this has multiple shortcomings. Real-world accelerometers have noise, gyroscopes have drift, your starting location is probably inaccurate, your vehicle likely needs more data than that to operate and the whole systems I just described had no way of finding itself if it resets in-mission.

For a realistic barebones project like you described you will need:


3 accelerometers (in an IMU)
3 gyroscopes (in an IMU)
3 magnetometers (usually come with the IMU and help keep the previous 2 in line)
GPS (can be bundled with the IMU and you specifically wanted it)


Further data sources are desirable but greatly complicate the FCS architecture, since you need to properly weight the data, after all, you don't want the aircraft to trust the magnetometer more than the gyros and show you a little trick it learned when passing near a magnetic anomaly.

In particular, a Pitot probe is good to have know your airspeed as opposed to your ground speed. An alpha vane is a bit of a luxury and not needed unless you are pushing the flight envelope.

Any ground-watching sensor with sufficient update rate, range and accuracy (IR, laser, LiDAR, acoustic, etc) will allow you to smooth your landings, and which one you pick should depend on your design and budget; they all have pros and cons.



From the coding standpoint, if you are serious about doing this by yourself from scratch, you should look into real time systems, Kalman filters and the vast field of sensor fusion. Also learn some aerodynamics while at it, so that the airframe itself is not a black box to you. You can run an FCS on an Arduino, even for quadcopters, if you are content with just a basic SAS.

There is a large community of hobby UAV builders online that can provide you with an almost off the shelf solution for your FCS (Ardupilot), if you prefer that approach. I personally often find their documentation lacking, so I suggest you at least learn the basics behind what you are doing, to help you navigate the inevitable gaps in the manual. Also, since it is an open source project, you can then fill in those gaps.