Make a draw module for drawing functions

Current draw scheme is not sophisticated, but this will
give us a place to keep and modify different drawing
methods without having to change code in a lot of other places.
Remove unused argument in calculate_constraints
Use best_weights index for draws

This index is the same as that of household_freqs, but is
already aligned with the weights. The h_pums index is not
aligned with the weights, which causing a misalignment during
the draw.
Replace zeros in joint distributions

Instead of in the constraints that result from the IPF step.
This seems to be more in line with what is described in the paper.
Add function for drawing households

Takes the new indexes drawn previously and returns new
household and person tables based on those indexes.
The tables have completely new indexes and are linked by
an 'hh_id' column in the persons table.
Compare synthesized results and constraints

Uses chisquare function from scipy.
Update synthesize_all to reflect new return values.
Run household draw 20 times

And keep the one with the best combined chisq between
households and people.
Remove unused code in synthesizer

[ci skip]
Concatenated households and people

Have the synthesize_all function return synthesized tables of households
and people that are properly indexed and related.
It also returns fit quality data for every block group
synthesized.
Merge pull request #21 from synthicity/synth

Synthesizer Refinements