Nonstandard Methods in Ramsey Theory and Combinatorial Number Theory