PostgreSQL streaming replication

This sets up a 'hot standby' PostgreSQL secondary with streaming replication. This is the closest thing to MySQL bin log replication.

This includes:
- Add and configure a postgres secondary
- Add replication config to postgres primary
- Factor out postgres stuff into it's own module
- Add a script to initialise a new secondary

This does not include:
- Metrics for a postgres server (we currently do not have this for our primary)
- Metrics for posgres replication
- Monitoring / alerting for a postgres server
- Monitoring / alerting for postgres replication status

Reference:
https://wiki.postgresql.org/wiki/Binary_Replication_Tutorial - general replication tutorial
https://wiki.postgresql.org/wiki/Hot_Standby - documents the `pg_basebackup` command
https://wiki.postgresql.org/wiki/Streaming_Replication - more detailed docs on streaming replication