Funkwhale is awesome, but it's also one of those FOSS projects whose website doesn't exactly illustrate what it exactly is or what it's exactly for, so here's a direct link to straightforward answers for both of those questions
I want to say +1 for funkwhale, but I didn't get it to work with the subsonic client and haven't found yet a way to download/cache songs from my library on the phone. Have you figured this out?