Huperzine A from Huperzia serrata: a review of its sources, chemistry, pharmacology and toxicology