Two cents from an apps developer: few months ago I've implemented multisig on top of BitcoinJ(generic signing code providing a signature dependless on current state of a partially signed transaction). The experience was truly horrible. Bitcoin documentation is a mess, BitcoinJ documentation is also outdated, so finally I investigated BitcoinJ source code pretty deeply to go forward.