How can shape keys of a linked object be controlled?
To my best knowledge, your first assesment on having the shape keys be driven by bones or other control objects is correct. That is to say, shape keys can be controlled with drivers. 

Often with corrective shape keys you've a setup where the shapes are driven "behind the scene" by the bone transforms. In case you require manual control over the shape keys, you can create a proxy for the controlling object in the scene you linked to.

You might be interested in reading up on drivers and checking this vid on proxies.