there are many meanings of bottlenecking but the most basic can be described like this:
say you have, well many bottles, full of water. each bottle has a different sized hole on the top or "neck". assuming all the bottles have the same amount of water, you begin to pour out the water and time how long it takes for each to empty. obviously the bottle with the largest hole has the lowest time. so the size of the hole is limiting (bottlenecking) the water from flowing out faster.
and to tie it all togeather
in computer terms the part of the computer that limits performance the most is said to be the bottleneck of the system.
The term bottleneck is used to describe as a component, or operation in a system that constrains the total output of the system. In other words, a system will only perform as fast as it's slowest part. (the bottleneck) The total systems output is limited to the thru-put of the bottleneck. To increase the throughput in any system you have to increase thru-put at the bottleneck(s). To further elaborate, once you address one bottleneck, understand that you will still have a bottleneck, it will simply be moved to another area of the system.
To sum up your second question in the simplest way I can think of, if you take a very high end graphic card, and match it will a very low end processor, the processor will never be able to drive the GPU to it's full potential.
Actually, your CPU and GPU are pretty good match.
Would a faster processor make a difference? Yes, it would make a little bit of difference. But since your graphic card is a lower end gaming card, just about anything you can do will help some.
Right now you don't really have a bottleneck, but your performance is not what you want? But, as soon as you try to upgrade either your GPU or CPU, whatever you upgrade is going to yes, leave the other component being a serious bottleneck to overall performance.
I would upgrade my processor first, then my GPU, if I was not getting the gaming performance I wanted from your setup.