Cleans up Makefile
Cleans up Makefile

- Separates linking clearly from compiling. (some flags still need clean
  up, though)
- Uses SOURCES and TEST_SOURCES variables, pattern rule for compiling
  each object, and target-specific variables.
- De-duplicates `make dep`.

closedLoop/sampler,HazyResearch/sampler,HazyResearch/deepdive,closedLoop/sampler,HazyResearch/deepdive,sai16vicky/sampler,sai16vicky/sampler,HazyResearch/deepdive,closedLoop/sampler,sai16vicky/sampler,HazyResearch/sampler,HazyResearch/sampler,closedLoop/sampler,sai16vicky/sampler,HazyResearch/deepdive