Use Osmand. It's free for up to 7 maps, and powered by the many volunteers working on OpenStreetMap.
You can add intermediate waypoints:
To add or remove waypoints, you need to long-tap on the map after the route is calculated, tap the three-dots menu and choose 'Add as last intermediate destination'. Add multiple waypoints one by one if needed. To remove a waypoint, just make a long tap on it and choose 'Remove'. To rearrange the waypoints, tap the flag button in the navigation context menu, then long-tap the (≡) button to swipe waypoints up or down.
(Alternatively, you can set additional destinations, and the app will ask you if it needs to start a new navigation or add the new one to your waypoints).
What made me buy the paid version is (apart from wanting to support it and lift the 7-map limitation) that it can work completely off-grid: you don't need an internet connection, just your GPS.
It isn't as fast starting a navigation/finding your location as e.g. Google Maps, but that's no surprise since Osmand does not have thousands of cars driving around picking up Wifi access point information. Once you're on the way, it's fast enough. The quality of your GPS receiver counts there too, of course.
It's being actively maintained, the interface has improved significantly early 2016.
I'm not sure about the pricing structure, I paid a flat fee of €6.49, but it now says €1,21 - €2,41 per item.