Duration and Bandwidth Limiting: Prolate Functions, Sampling, and Applications