Who pays on-chain fees for settlement transaction? Given a channel between Alice and Bob, who pays the on-chain fees when closing the channel?

Considering all possible types of closes:


Bob unilaterally closes channel
Bob wants to close the channel and Alice's node agrees (collaborative close)
Any other type of close (if there are)
As long as we don't have BOLT1.1 and dual funded channels the fees for settling a channel are always paid by the party who funded the channel as described in BOLT 03 - Transactions: 


  Base commitment transaction fees are extracted from the funder's amount; if that amount is insufficient, the entire amount of the funder's output is used.


There is one exception to the rule if the channel partner has an output that is below the dust limit this output is also added to the fees and reduces the fees that the funder of the channel hast to pay.


  Note that after the fee amount is subtracted from the to-funder output, that output may be below dust_limit_satoshis, and thus will also contribute to fees.


On a side note. A mutual close has less fees at it works by settling all pending HTLCs and then create one spend of the funding transaction.