Test/fix Period.to_timestamp issues
Should conform with new PeriodIndex.to_timestamp, add lots of test for annual, quarterly, other frequencies

```
    def start_time(self):
        return self.to_timestamp(which_end='S')

    def end_time(self):
        return self.to_timestamp(which_end='E')

    def to_timestamp(self, which_end='S'):
        """
        Return the Timestamp at the start/end of the period

        Parameters
        ----------
        which_end: str, default 'S' (start)
            'S', 'E'. Can be aliased as case insensitive
            'Start', 'Finish', 'Begin', 'End'

        Returns
        -------
        Timestamp
        """
        which_end = _validate_end_alias(which_end)
        new_val = self.asfreq('S', which_end)
        base, mult = _gfc(new_val.freq)
        return Timestamp(lib.period_ordinal_to_dt64(new_val.ordinal, base, mult))
```
