What type of paint to use when painting on a shiny veneer, to produce the least odour?
Solvent based primers are the way to go on top of Poly or other clear coat.  If you don't want to deal with the smell though you will need to sand it well and apply a surface prep fluid.  I personally use a product called no sand (yes I still sand before I use it).  This softens the top coat you are working with allowing a latex paint to stick better.  It will still not be as durable as it would with a solvent based primer.  

If this is a high traffic shelf (a bookshelf that is used often for example) I would suggest finding a time you can sleep in another room and use the better primer, that said if it just holds pictures or decorations then you can get away with the method mentioned above just fine.

Make sure you read the directions on the no sand well.