3700x is actually top of the crop for 8 cores/16 threads. But 2700x is an excellent value that is hard to beat.
The main difference between B450 (gen 2) and X370 (gen 1) and X470 (gen 2) is the number of PCIe lanes directly supported. The X370/X470 also typically support more power phases which is good for overclocking.
If you are building a basic system, with just a video card in the slots and 2, 3 drives, then B450 should do you fine. If you want lots of expansion or overclocking into the 120W+ range, then I would lean towards X470. I would also stick with gen 2 chip sets (B450/X470) as these have native support for 2700x. If you buy a X370 board there is no guarantee the BIOS has been updated to support the 2700x which is a second gen chip.
As a general rule of thumb anything above DDR4-3000 is wasted money on the Zen/Zen+ architecture. Memory doesn't really scale nearly as well as the Zen 2 (Ryzen 3000) series. 16 Gigs (2x8 Gigs) is a good starting point for general computing and gaming. If you are doing serious video editing, 32 Gigs would be preferable (2x16 would be best in terms of speed, but you pay a premium for 16 Gig sticks)