1. Not out of the box but I personally developed one that plugs right into Sitefinity. It's available on GitHub and NuGet.
2. Same as number 1.
5. No. You can discount by customer, code, and amount spent in the default. It could be possible to develop your own solution however.