xapian-bridge C port

endlessm/eos-sdk#2463
optional nitpick: since these are the most boilerplate-y of all GObject boilerplate I usually prefer to stuff each macro onto its own long line.