Molecular Nanomachines: Physical Principles and Implementation Strategies