How a Pokemon evolves:
As the Pokemon levels up, a list of stat changes are shown.
What you don't see is the cell population growth of the Pokemon as it levels up. However, the cells are being compressed up to a certain level.
When a Pokemon evolves, that limit for cell population compression is broken, thus creating a MASSIVE overgrowth of, well, growth.
When you deny its evolution, it will kill some of the cells that are compressed, thus keeping the limit of cell population intact.
For Pokemon who can't evolve, it may be because they have no limit of cell population growth, or maybe because their bodies have their own 'population control' mechanism.
For traded evolution, the mind is the key. The organism needs to have twice the control. This is why when you trade, it evolves.
Some Pokemon have the instinct of holding a special item they are connected to whilst gaining another source of control. That is why a Seadra will evolve when it holds a King's Rock and is traded.
Stones are really confusing, but there is a simple hypothesis to it.
There is a mental barrier for cell growth. When a Pokemon is holding the stone that enables it to evolve, the energy from that stone 'breaks the seal' and causes the overgrowth.
Mental barriers also apply to friendship evolutions. A tight bond with a trainer and the Pokemon breaks that mental barrier and creates the overgrowth.
Environmental energy around the Pokemon can create the overgrowth.
Pokemon that evolve from knowing a move are easy to explain. When a Pokemon uses a certain move, it creates an increase of cell growth, allowing the overgrowth to occur.
Here are reasons to how a Pokemon evolves.