Added Bandit epsilon-greedy implementation

********* PEOPLE *************
Primary reviewer: @sc932

Reviewers: @suntzu86

********* DESCRIPTION **************
Branch Name: norases_255_create_epsilon_greedy_bandits
Ticket(s)/Issue(s): Closes #255 

********* TESTING DONE *************
make test-no-tox
make style-test-no-tox
I don't understand how ```validate_sample_arms``` and ```validate_historical_data``` are different. they appear to do the same thing and take the same inputs. If you want to have a function with two names (why?), just do
```
def validate_sample_arms(...):
  ...

validate_historical_data = validate_sample_arms
```