refactor sample data generation

refactor portions of data generation pertaining to matching and status to
more accurately reflect real world and to better facilitate matching
testing

as before, this logic will only execute when the adopters and/or adoptees collections are empty. generation routines now use promises so that sample matching can occur at completion of both adopter and adoptee; thus, one server invocation is now sufficient to generate all sample data including matching.

![image](https://cloud.githubusercontent.com/assets/6557748/4877220/81bbb88a-62e1-11e4-89a1-c59827609941.png)