As of the time of writing (18.104.22.168), the following applies, for the Corruption. The Crimson has similar mechanics, although the specific blocks are different (and due to the question's focus, I will not deal with the Crimson in this answer):
In Normal Mode:
- Corrupt grass can spread in a manner similar to normal grass, converting adjacent Dirt tiles with at least one side open to air (only in the Surface Layer).
- This is because grass only spreads on the surface.
- Corrupt grass can also displace normal and hallow grass, unless the grass has a Sunflower planted on it.
- Note that Hallow grass doesn't appear naturally on a newly-generated world. You can create it using Hallowed Seeds, Holy Water or the Blue Solution (for use with the Clentaminator), imported from a Hardmode world.
- Corrupt grass may sprout Thorny Bushes, which can spread corrupt grass according to the same rules.
- Thorny Bushes grow in all directions (not just upwards, although they have to start by growing up), and may spread. The maximum range for the Bushes seems to be around 6 blocks from the Corrupt grass block that initially spawned the bush.
- In addition to corrupt grass, thorns and plants, Ebonstone, Ebonsand and Purple Ice also generate corruption (Red Stucco no longer spreads corruption as of 1.2.3).
- Grass can still be converted to corrupt grass, and corrupt grass can cover new dirt as in regular mode.
- Mud can now be converted into dirt. Jungle grass can also be converted into corrupt grass (changing the underlying block type to dirt).
- Thus Jungle biomes will eventually be partially converted to Corruption.
- Stone can be converted to Ebonstone.
- Sand can be converted to Ebonsand.
- Ice can be converted to Purple Ice.
- Sunflowers block corruption in hardmode (as of 1.2)(Before 1.2, Sunflowers will be uprooted if the grass they are planted on becomes corrupted).
- Corrupt grass is still limited to the Surface Layer, but Ebonstone and Ebonsand can spread through any depth.
- Corruptible blocks that are up to three squares away from an existing corrupt block can be converted (even if incorruptible blocks are in the way).
- This means that a single Sunflower (2 blocks wide) will not stop the corruption from spreading to its side.
- Silt can be converted (to Ebonsand) as part of the initial burst when you first defeat the Wall of Flesh, but not at other times.
Background walls aren't affected by the Corruption, except when as part of the initial burst when you defeat the Wall of Flesh.
Upon defeating Plantera, Hardmode Crimson, Corruption, and Hallow spread will be slowed down to 1/3 (33%) of their previous speed (As of 22.214.171.124)2.
Preventing The Corruption from spreading can be done by planting at least two sunflowers consecutively or, in alternative, by building small barriers (or forts) of non-corruptible material on both sides of The Corruption at least 3 blocks wide. This can only be easily done in Normal Mode.
Before 1.2, preventing the spread in Hardmode is near impossible, due to the amount of corrupted blocks before and after the defeat of the Wall of Flesh, the lack of efficient biome creators (for reference, at the time there were only seeds and Holy Water, which have small radii of influence) and the increased speed of spreading. The recommended approaches are to create a contained Normal zone (where your base is) before or immediately after the world enters in Hardmode.1
As of 1.2, after defeating any Mechanical Boss, the Steampunker will appear and offer the Clentaminator. It projects a Solution to a range of about 60 tiles, which will convert any block in its path to the corresponding Solution biome block. It is possible to change an entire world by digging hellevators around 120 blocks apart, which makes biome spread more manageable.
Answering the questions placed:
Ebonstone will create an artificial Corruption biome, assuming that on the screen are at least 200 blocks. It will not spread on Normal Mode. It will spread as soon as you pass into Hardmode. Not only that, but Hardmode Corruption spawns the Corruptor that has a projectile attack that spread Corruption, until version 1.2, where that effect was removed.
- In this scenario, Ebonstone will not turn blocks of dirt in contact with it corrupted (since dirt is incorruptible) - however it will turn any patch of Normal or Hallowed grass into Corrupted grass. This also means that before Hardmode, the only way to create a mushroom farm is with Corrupt Grass seeds and letting them spread.
Corruption spreads through Thorny Bushes (although the rules behind it aren't well documented). As far as I can tell, at Normal, it needs to contact the dirt blocks (same as grass). At Hardmode it stands to reason that it still spreads as before, but it's unclear whether it can now spread to rock, due to the 3-tile rule. In practice it doesn't matter, as the spread (of Corruption through Stone and other blocks) is faster than the growth of the bushes.
Thorny Bushes grow in the following fashion: They spawn from a block of corrupted grass. This block needs to have air above it. From that block, they can spread to a distance of at most 6 blocks from that point in all directions. They spread it the same way a real bush does (i.e. by spawning a bush block in one of the 8 directions a current bush piece has). If no wall is behind them, they will try to spread orthogonally, otherwise, they can spread to the corner directions.
- Note that a Thorny Bush can spread Corrupted grass, and that enables more bushes to spawn.
Disclaimer: Most (if not all) of the information here can be obtained in the official wiki and also at some extent at the unofficial wiki. The information is there, except split across several pages. Also, there seems to be some inconsistencies between some pages; when possible, I use the changelog information as the deciding factor (when possible). The only information not available in the wikis is the information about the Thorny Bush, that I've verified visually with old saves.
1 - It is possible to completely contain everything, by building 3-tile wide walls across the entire map in a grid pattern. It is, however, a complete waste of resources and patience and time. I know because I've tried to do it.
2 - Apparently, it seems the Mechanical Bosses, at one time between their introduction in 1.1 and 126.96.36.199, reduced the spread speed - however I can't find or remember any reference to this. I assume it might have been a typo or the developer's previous intent that seeped into the changelog.