How to create a procedural embedded stone texture for ground/asphalt/pebbled concrete? I'm trying to make some ground like or some asphalt like this procedurally in cycles; however, I don't have a good way to make the stones:


Ignore the large pebbles and the pine needles





Is there a good controllable solution? 
The important things here are that the stones are distinct (both shape and color), adjustable in size, are distinct form the ground and can  be sharp edged or round edged (sharp edged is a requirement). Its really important that these stones look reasonable up close and that they are controllable.

To anyone thinking about using a voronoi texture, You will have to come up with some serious ways t alter it, as it stands, it has little promise, I tried:
I'd recommend using Brick Texture as a core for stones generation. I've set up these nodes for some tests:


As you see I use Voronoi too (because you mentioned it) but just to shuffle the stones a little bit. I'm sure you can use noise or something else for it.

This gives us the sharp shapes we were after. We can use it as a mask then: 

I multiply it by some color, mix with another instances of this "stones texture" with a bit different sizes/frequencies/color and finally add a simple noisy background. I also apply some Image Blur from b°wide NodePack

Personally, I like it when the stones are small and I'm not sure if you'll be satisfied with it much zoomed.


I also did't manage to reach the stones density as on your 2nd image without ending with many overlapping stones.
Here's my general set-up:


UPDATE:
To make it more clear how Bricks-Voronoi pair works I'll give some more images of Bricks without its companion.
No vector input (raw boring squares):

Noise texture:

Wave texture: