First commit of WA loader. Needs refactor.
Added class to normalize column names
Normalized .csv headers and standardized fields
Made WA loader pep8 compliant
Some changes to loader module. Pushing changes but not final yet
Refactored error messages
Added support for a portion of all Excel files
Final additions tonight include actually getting the values from specific cells
Added complete preliminary .xls support
Changed from hard indices to fuzzy matching, added pymongo 2.6+ to requirements.txt
Refactored regex patterns, WALoadExcel should handle all standardized Excel files
Minor changes, added to bad_files
small refactoring -- cleaned up some logic when deciding which files to use. shouldn't break on .xlsx and works like a charm for all current files
small refactoring -- cleaned up some logic when deciding which files to use. shouldn't break on .xlsx and works like a charm for all current files
small refactoring -- cleaned up some logic when deciding which files to use. shouldn't break on .xlsx and works like a charm for all current files

small refactoring -- cleaned up some logic when deciding which files to use. shouldn't break on .xlsx and works like a charm for all current files
Merge branch 'dev' of github.com:EricLagerg/core into dev
* Took normalizing function calls out of loops (speed increase)
* General file cleaning (pep8 compliance, etc)
Final draft commit for Washington state's loader.

This updated file includes changes to the normalizing API, and takes all
relevant data from each of the files currently in OpenElection's WA cache.

Unfortunately, due to irregular formats, some files aren't able to be
processed at this point. For example, several Excel files have over 100
sheets, all of which take the standard row/column format and switch it.
Some .csv files have no data, and only contain fragmented HTML from when
the file's fetch received a 404 message.

I elected to not include code for those files in this commit because the
amount of time it would take to go through those files would put off the
loader for at least another month, due to my busy schedule. Writing Python
is a little faster than pouring over 20 badly-formatted Excel files with
20+ sheets.

- Eric Lagergren
ninja edit for req.txt
Bumped normalizing functions out of a class as the class was not helping to
make the code any more readable.

Each of the normalizing functions are now their own separate function, found
after the `LoadResults` class.

It'd be best practice to put those functions inside a module, but I don't
think doing that would fit within the scope of this project.

---

Other changes include removing the `name-slug` RawResult attribute, returning
"more raw" name data from the files (i.e. using `family_name` and `given_name`
instead of merging the two into `full_name`).