func (c *Changelog) GetSubsection(versionNum, subsectionName string) *Subsection {
	version := c.GetVersion(versionNum)
	if version != nil {
		for _, s := range version.Subsections {
			if s.Name == subsectionName {
				return s
			}
		}
	}
	return nil
}
GetSubsection fetches the Subsection struct which matches the versionNum & subsectionName.
Returns nil if no version was found matching the given versionNum & subsectionName.
package changelog
func NewVersion(versionNum string) *Version {
	return &Version{
		Version:     versionNum,
		History:     []*ChangeLine{},
		Subsections: []*Subsection{},
	}
}
func (c *Changelog) GetVersion(versionNum string) *Version {
	for _, v := range c.Versions {
		if v.Version == versionNum {
			return v
		}
	}
	return nil
}
func (c *Changelog) GetVersionOrCreate(versionNum string) *Version {
	version := c.GetVersion(versionNum)
	if version == nil {
		version = NewVersion(versionNum)
		c.Versions = append([]*Version{version}, c.Versions...)
	}
	return version
}
func NewSubsection(subsectionName string) *Subsection {
	return &Subsection{
		Name:    subsectionName,
		History: []*ChangeLine{},
	}
}