Fix cracks when hardness <= 0.0
Blocks: Added more texture_names, corrected some spelling
Crafting: Optimized recipe builder slightly
GUI: Pulled some shared Inventory functions to a new class
Puts user input hard-coded keys in globals.py & rewrites configuration file handling.
Big: Changed block.id from a float to a custom BlockID type
gui.py: Uses a custom function instead of str so we don't have to name all the
        icon files like 1.0, 2.0, 3.0, 4.0...
savingsystem.py: No longer needs odd math to build the id
crafting.py: chisled -> chiseled spelling correction
Merge pull request #56 from Nebual/blockid

Changed block.id from a float to a custom BlockID type
Removes dandelion bottom texture.
BlockID "main" - check for basestring instead of str
Allow BlockID "main" string formats like: "35", "35.0", or "35,0"
Command updates

- GiveBlockCommand can accept block_id formats like
  "35", "35.0", and "35,0". All resolve to the same BlockID.

- Add GetIDCommand which just prints out the players
  current block ID
Change name of SapphireOreBlock from "Ruby Ore" to "Sapphire Ore"