Kill EventTracker._handle_properties().

Putting the token in the properties only applies to traditional events, not
to people events, so this function only makes subclassing harder.  Might as
well code this special knowledge into _build_params() which puts the token
into the right place in the params dict.
Add PeopleTracker.required_params and optional_params.

This makes it possible to pass token, distinct_id, ignore_time, time and ip
as kwargs to PeopleTracker.run() instead of overloading properties which
was getting out of control.

This includes some enabling changes:

* Call _build_params() and _encode_params() in sequence rather than calling
  _encode_params() from _build_params().

* Kill _is_test() in favor of setting the flag in _encode_params(), so that
  we can omit it entirely (rather than setting it to 0) when test is falsy.

* Clean up FunnelEventTracker.run() to call super() rather than duplicating
  the work. It still generates an initial log string for identification
  since EventTracker.run() produces generic log strings.