I forgot to mention in the subject line that this is an RFC patch only. I haven't tested it or put in any documentation, and there's likely other things wrong with it too, even if the concept itself is agreeable.