Who pays the miner fees for the closing transaction of a payment channel? For single-funded channels, I understand the miner fee for the the transaction that is opening the channel is paid by the  actual party wanting to make a payment.

However it's unclear who will eventually pay for the fee for the transaction that is going to close the channel. Will it be split by the two parties? Will it always be the person who "wants to cash out" that pays it?

Currently Blockstream Store is receiving lots of small payments via LN through single-funded channels. Let's say Blockstream (just an example) needs the revenue and wants to cash out. To do this they ask all their channels nodes to "cooperatively close the channel". 

If Blockstream has to pay the closing channel fee, what happens if the fee is actually larger than the amount they received through the channel itself? 

This becomes even more tricky to understand when you're routing payments.
According to the BOLT 3 specification, the peer that funded the channel will incur the costs of closing fees. It also seems that these fees would be calculated before closing a payment channel. Both parties already have a transaction with a built in fee that can be used to close the channel that they can broadcast at anytime.

Reference: https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md#closing-transaction