I'm not sure what exactly you are referring to, but let me give a quick break down of the options here (my day job is primarily consulting around the Atlassian stack of tools).
JIRA itself is highly configurable out of the box and most aspects of the tool can be configured however you like. If you want a record ("issue type") called "Epic" it is easy to configure JIRA to have it. It is also easy - for some definition of easy! - to customise the data you collect for these records ("fields"), when that data is displayed ("screens"), and the lifecycle through which it will progress ("workflow").
However!
Most people want to use Epics as part of an Agile methodology, and Atlassian provides a batteries-included solution called "JIRA Agile". If you saw an 'activate to enable Epics' button it was almost certainly for JIRA Agile (previously GreenHopper) though I don't recall seeing this button myself. JIRA Agile is nice for many reasons, even for people who don't follow an Agile methodology, IMO primarily because it provides a simpler user experience for many people - most installations I've seen have it.
Stash itself is a fairly well targeted piece of software. It manages git repositories, and provides tools to help with that and integrate with external systems. Provisioning projects->repositories->branches and the permissions around them, pull requests, forks, hooks, automations, and integrations. It's also fairly easy to extend with add-ons from the marketplace or that you have written yourself.
The integration between Stash and JIRA is good, but is not much more than showing branches, pull requests, and commits that a JIRA issue has been referenced in.
Hope that helps