MicroRNA target prediction: theory and practice