Improving Anonymity Networks Via End-To-End Design