Fastenal reports sales and earnings gains