Add transitions_up_to and offsets_up_to methods to Timezone.
Rename TimezoneOffsetInfo and TimezoneTransitionInfo.

- Rename TimezoneOffsetInfo to TimezoneOffset and TimezoneTransitionInfo
  to TimezoneTransition.
- Remove #:nodoc: from TimezoneOffset, TimezoneTransition and
  TimeOrDateTime. These classes are now part of the public interface
  (used by Timezone#transitions_up_to and Timezone#offsets_up_to).
Rename tc_timezone_offset_info.rb and tc_timezone_transition_info.rb.

Rename tc_timezone_offset_info.rb to tc_timezone_offset.rb and
tc_timezone_transition_info.rb to tc_timezone_transition.rb to match the
class names.
Fix documentation for LinkedTimezone#transitions_up_to.

Make documentation for LinkedTimezone#transitions_up_to match
DataTimezone#transitions_up_to.
Create TimezoneTransitionDefinition.

Introduce a new subclass of TimezoneTransition
(TimezoneTransitionDefinition) for use by the Ruby and zoneinfo data
sources.

TimezoneTransition is now abstract. TimezoneTransitionDefinition
contains the code to handle the deferred creation of the #at
TimeOrDateTime instance.
Add convenience DateTime and Time methods to TimezoneTransition.

- Add datetime and time methods returning the value of at.
- Rename local_start and local_end to local_start_at and local_end_at.
- Introduce new local_start and local_end methods returning DateTime and
  add local_start_time and local_end_time methods returning Time
  (naming consistent with TimezonePeriod).