Generating a (ideally several) PWM signal from GPIO, alternative to software-based pulse
Best practical solution is to buy of-the-shelf servo and control it from your software by communication lile UART or ethernet. It's because the people who make servo do it better than you and cheaper then you. And they actually have it done, while you are just starting. 

Still, let me explain what is inside a typical servo. There is a microcontroller with built-in pwm peripheral, that is set on startup to certain frequency and the duty cycle is updated each cycle according to control loops outputs. Normally one MCU can control two motors, sometimes three or even more. 

The servo firmware normally has current, velocity and position loops, and depending on vendor advanced control algorithms (error correction, ecam, input shaping, you name it).

More advanced architecture has one master controller with cool cpu inside and separate power stages connected by communication to the master. 

A decent dual axis servo costs around $500. I am sure, time you are going to waste building it by yourself costs more. 

If you need hints on such servo, i suggest for Galil (simple, but almost high end), Adtek QS9 (chinese high end, very simple and practical), then you have beckhof, yaskawa, elmo- good, but more expensive and complicated.