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.
this logic doesn't feel right can you not just send in true and false to toggleForm and consume that boolean?