Do not redact cc numbers that are part of urls

@ggrossman 

This makes it so that a credit card number can't be part of a url.

I refactored this a lot. 

* `#initialize` now takes an options hash instead of 3 optional parameters.
* Added a couple methods (`#valid_numbers?` and `#within_redaction_range?`) to make it clearer what is going on.
* Added comments to the public methods, and made `#valid_prefix?` a private method.
* Updated the README https://github.com/zendesk/credit_card_sanitizer/tree/cecd2b250e3f270136f921ffd23a2f169d637ca1

It's approximately 3 times slower, but I think this URL strategy works well.

Old:

```
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.048862
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.048372
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.048615
```
New:

```
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.146187
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.145299
>> Benchmark.realtime { 100.times {  s.sanitize!(japanese_text) } }
=> 0.14736
```
search and replace fail :/