Add inline documentation to codebase.

Hi all,

This addresses #277.

I've done a bit of work on it this evening so I thought I'd PR now so that you can check it out, approve/disapprove, and then we can work with that feedback to make alterations and finish it all off.

I'm pretty pleased with it so far, but I think there are definitely areas where you guys will wan't to suggest changes, maybe where I've missed the point of something that should be mentioned in the comment or something.

Also, I plan to add inline comments throughout the functions themselves in order to make it clear what is actually happening. While reading through it, it became tricky working out exactly what the intention was of certain lines, and I think that could be easily fixed with the odd `// Do X to Y in order for Z` type comment.

##### Regarding Stylus

I've only looked through `_functions.styl` so far but I noticed that there are quite a few differences that seem more than just cosmetic. I'm sure I'll learn it all eventually but if there is anything critical I should know that you could fill me in on, then that would be great. For example the `opposite-direction()` function doesn't seem to exist in the stylus version.

**Sorry for the essay, and like I said, there will be more to come tomorrow. Feel free to rip my changes to pieces so we can make it perfect** :smiley: