Added ability to retrieve inode data structure of arbitraty inode.

This change added a new function, inode_datastructure, that uses previously gathered filesystem metadata to step through the filesyste, 1 block at a time, until it gets to the block that holds the inode table for the inode we are looking to modify.  It currently takes longer than I'd like to find the inode table, I tried jumping ahead by block group instead of block by block, but I ran into integer overflow issues due to block size * blocks per group being larger than a 32-bit system allows.  This will be one of the first things to try and optimize once the program is complete, everything else runs quickly, but stepping through the filesystem feels far slower than it should.