Analysis, Design and Implementation of an End-to-End QKD Link