Is evolution a predictive theory?
Evolutionary biology is a highly quantitative science and offers a fair amount of predictive power. However, at the same time, there are plenty of things that we are completely unable to predict.

What are we good at predicting?

There are plenty of things and it is impossible to list them all. Here are a few examples of things we can predict. 


Number of pairwise differences (or other measures of molecular differentiation) do we expect between two lineages that recently split in a given number of years. 
Number of pairwise differences between individuals coming from the same population.
Number of mutations of given fitness effects (whether beneficial or deleterious) do we expect to accumulate over a given period of time in a population. We can predict the age of a lineage. 
Predictions about the evolution of multicellularity, sociality, etc. in lineages that are limit-cases (relating again to our ability at a short time only).
Speed of evolutionary change as measured in Haldanes or in Darwins (these are units) (from knowledge about the genetic variance).
Predictions about the heterozygosity of a population and the loss of heterozygosity through time.
predictions about the gene flow, migration rate or strength of selection.
Predictions of the consequences on fitness that a change in population size may cause.


Generally speaking, we have good predictive abilities at short time scale OR for neutral sequences OR for conserved sequences (strong purifying selection).

In short, we can predict a lot of things but by far not everything yet.

Main complications in doing predictions in evolutionary biology

I would suggest decomposing the reasons why predictions can be hard into the following categories. However, I might well forget something and one could argue that my semantic is less helpful some other semantic.


Environment


One issue related to making predictions at long time scale is that the environment changes through time in a way that we are not able to predict accurately enough yet.

Noise (incl. genetic drift)


I am not here talking about measurement error or sampling error (these are statistical concepts you may want to check if you don't know them), I am talking about the stochastic process that is inherent to biological systems such as the randomness of mutation processes and genetic drift.

Genotype-phenotype map


We have too little understanding of molecular genetics in order to be able to predict how different specific mutations would affect the phenotype. As a consequence, today we still have very little predictive power about the evolution of a phenotypic trait that is currently totally inexistent.

Complex systems


For example: demography affects evolution which affects the social environments, which affects demography which affects the pattern of species competitions which affects the evolution of another species which affects its demography which affects the evolution of a third species which affects the demography of our first species, etc... These kind of complex systems are often mathematically not tractable.

Parameters


We often don't know the exact parameters of the lineage we are interested in. There is a lot of measures to take to be able to make predictions and we often don't have the money (or the time) to make all these measurements (assuming we are able to accurately measure them). For this reason, we are often relatively good to make predictions for a few model organisms but pretty bad for the vast majority of species.



Applications of evolutionary biology

There are not a lot of applications of evolutionary biology for the moment but still, there are some proving its predictive power. These applications include 


medicine and epidemiology (incl. evolution of resistance)
artificial selection and other techniques mainly to improve crops (e.g. nuts)
Various search algorithms such as the genetic algorithm


Note, my answer was partially recycled from this other answer of mine

Answering directly in your text


  It seems like almost any observation can be explained by current evolutionary theory


This is wrong. You should learn more about evolutionary biology (starting with Understanding Evolution by UC Berkeley for example) and you will understand why it is wrong. I can't make a whole introduction to evolutionary biology in a single post.


  Is there any example of someone developing a rigorous framework or model of how evolution works?


Yes, there are thousands of such models depending on the exact evolutionary process of interest. Just to give you a feeling of it, you could have a look at any book recommended on the post Book recommendation on population/evolutionary genetics?. If your knowledge in math is a little weak, then you might want to have a look at the introductory book A Biologist's guide to mathematical modelling in evolution and ecology (Otto and Day). While this book is quite introductory, I would still recommend starting with an even more introductory course as suggested above.

Standard mathematics methods used in evolutionary biology include branching processes, birth-death processes and other Markov Models, mathematical statistics and probability theory, diffusion equations, approximation theory, ...

On a side note, you would note that the development of statistics is very much related to evolutionary biology. This is true historically but is still true for the development of modern statistics. Just to cite one person, Ronald Fisher was an evolutionary geneticist (one of the fathers of the modern evolutionary synthesis) and he invented some of the most used statistical tests (t-test, anova-F-test, Fisher's tests).