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
Hi, 
I think you are right. The 
1. CompoundNotFoundException thrown in the constructor can be changed into a RunTimeException say IllegalArgumentException
2. CompoundNotFoundException thrown in fetchUniprotXML method should be a RemoteException (any better ideas?)
3. MalformedURLException should be done away with because there is only 1 URL which is hardcoded and is correct, so error wont happen due to URL malformation
4. I would also propose to use apache Httpclient for fetching the data. I don't know why it was not yet done. Any ideas?
5. I intend to add some more features like submitting Blast, Align and Id-Mapping jobs to uniprot and fetching the results going forward.