Cleaned up the CRC32 calculation

Hi,

As noted in #3, there was some cleanup needed (IMHO) with the CRC32 calculation. Here are my suggested changes. Please take a look and see what you think! I think there are still some things which could get fixed; I wrote some TODO about it in the code. Feel free to explore and/or modify these changes also to your likings.

In general, I strongly believe in the principles outlaid by "Uncle Bob" in the [Clean Code](http://www.e-reading.biz/bookreader.php/134601/Martin_-_Clean_Code_-_A_Handbook_of_Agile_Software_Craftsmanship.pdf) book. If you haven't read it, I strongly recommend it. Very quick summary:

* Short methods are better than long (simpler to get a grip of)
* Explanatory names are better than comments (since comments tend to degenerate as time goes by)
* Different concerns belong in different methods and/or different classes.

Best regards,
Per