Membership tab clean up

The membership tab had a bug where it wouldn't show for partners who didn't have card details.

I used this as an excuse to simplify the code somewhat. Highlights include:
- Merged similar "JS classes" together, e.g. `js-membership-payment-next` and `js-mem-current-period-end` did the same thing
- Replaced some CSS animation with a transition which does the same thing but without so many classes/animation events
- Removed a lot of stateful variables like `this.display` and `this.changeCCFormIsOpen`.

Perhaps controversially I removed some tests for `formatDate` and `formatAmount`. The tests didn't seem that useful and they forced the aforementioned functions to be more loosely scoped than should be necessary.
stylistic but I quite like [day, month, year].join(' ')