[In Progress] Scraping, Reference Ranges and Units

This is a pull request in progress. This PR includes work for practice and provider scraping (fixes #87), reference ranges (fixes #53) and units(fixes #82). I was almost done with scraping, but I decided to put more effort to scrape all the information I can find online. 

For reference ranges and units, there is more work to do. I have designed what I will be doing for units. For reference ranges, I will work on the front end and connecting reference ranges to record update values.
So in another part of the code, you used `unless match["min"].strip.blank? && match["max"].strip.blank?`. The equivalent would be `if !self.minimum_value.blank? && !self.maximum_value.blank?` here. I'd choose a syntax and stick with it.