It sort of is, I mean it’s more elaborate than “move a character” but sure, if you search for it you’ll find plenty of examples and tutorials. Start with the manual example for instance.
No, you would need 16 vertices if you want to specify a different UV for each of your quads. A vertex is not just a point / position. The vertex includes all the other vertex parameters like normal, uv, … If any of those parameters should be different, even though all the other attributes are the same, you need to split the vertex into separate ones.
Note that when you want to create a single mesh and apply 4 separate textures, you would need to use 4 submeshes and 4 materials. This would be quite inefficient. You usually would create a texture atlas with all 4 textures in one texture and use uv coordinates to map individual parts of the texture to your quads.
I once made this WebGL example which might help you to understand how UV mapping works.