Improvements in fetching uniprot entry using uniprot accession id

Improvements:
1. added uniprot id pattern matching to fail-fast on wrong uniprot ids
2. added retrying netwrok request if id is not available immediately
3. bubbling-up the error codes in case uniprot servers are down
CompoundNotFoundException was intended for cases when a particular symbol in a sequence (nucleotide or aminoacid) is not recognised. 

Should we have a different exception for this case? what do people think?