add ignore_duplicates option for Tree.set_buffer

If `ignore_duplicates == True` then a warning is logged instead of raising an exception:

```
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_id_eff_sf_medium
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_collinear_momentum_fraction
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_trigger_eff_sf_tight
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_id_eff_sf_loose_high
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_fakerate_sf_loose
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_trigger_match_thresh
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_id_eff_sf_tight_high
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_fakerate_sf_medium
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_MMC_MET_y
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_id_eff_sf_loose
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_trigger_eff_sf_loose_high
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_fakerate_sf_loose_high
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_selected
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_MMC_MET_x
WARNING:rootpy.tree] Skipping entry in buffer with the same name as an existing branch: tau_MMC_MET_phi
```