Hello,
I am a data scientist and english football fanatic. I have extensive experience building algorithms to answer the type of problem you describe. In fact, I recently built one for cricket.
Here's how I want to approach this work - Use python to scrape historical data from the web pages you mention. I will do this for all 20 premier league teams. Then, I will use the data and follow a knowledge discovery process to 1. identify metrics (couple of which you mention) that can be predictive of a team's future performance, 2. wrangle the collected data and calculate these metrics for each time, 3. Build a classification algorithm to make predictions for each team's next x games, 4. Use the prediction to determine expected points each team will collect.
I want to do this in Python and store the data in an sql database as you mention. Also, I had developed a system similar to this one long time ago for fantasy football purposes.
Hope we can discuss more details and I am happy to help!
YNWA!
Nanda