Speed up update process

This PR contains two improvements to the update process:

1. The database update and insert operations are now done in bulk rather than calling .save() in a loop.
This reduces the time from 284s to 121s on my machine.

2. Instead of fetching rates for every currency from the api we only fetch USD rates and calculate all other rates from these (as described by openexchangerates.org [here](https://openexchangerates.org/documentation#how-to-use)).
This reduces the time by a further 110s to ~11s, with the further advantage of using only 1 api query.
Results have been checked and confirmed to be exactly the same.