Synthesis and applications of carbon nanofibers: a review