Update starts/ends_with? to handle nil prefix

This small change allows the `starts_with?` and `ends_with?` methods that are mixed in to `String` to take a nil argument. This matches the behavior of `start_with?` and `end_with?` in Ruby 1.8.7 and 1.9.3, which is particularly important when maintaining compatibility with other libraries (e.g. Rails) that alias `starts_with?` and `ends_with?` to `start_with?` and `end_with?`.