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
```
```
irb(main):008:0> Benchmark.realtime {10000.times { 'abc123def'.tr('^0-9','') } }
=> 0.011276
irb(main):009:0> Benchmark.realtime {10000.times { 'abc123def'.gsub(/\D/,'') } }
=> 0.086447
irb(main):010:0> 
```