core: refactoring the way sets work internally v2

This is a refactored solution for PR #616. Functionally this is still
the same change, but it’s implemented a lot cleaner with less code and
less changes to existing parts of TF.
Heroku SSL certificate support added
Heroku SSL support: fixes after code review of @svanharmelen
Merge pull request #672 from plan3-labs/heroku_cert_support

Heroku SSL certificate support
website: Add link to heroku_cert in the docs
Merge pull request #663 from svanharmelen/f-fix/change-set-logic

core: refactoring the way sets work internally v2