Rational that reduce to ints should print like ints

When you print rational expressions it currently looks bad to see integers formatted as fractions with a denominator of 1 (even though that's how they are stored internally).
For instance, in http://is.gd/0gRT1T, 

    println!("{}", Ratio::<int>::from_integer(42)); // currently prints "42/1"
                                                                         // this PR allows it to print as "42"


You should be able to avoid the `clone` calls here by using explicit pattern matching rather than helper methods:

```rust
match (num, den) {
    (Some(n), Some(d)) => Some(Ratio::new(n, d)),
    _ => None
}
```