I know it's a long tutorial but I felt I couldn't make it any shorter. I tried to post it into parts. Hopefully you'll find it a good read. Let me know if you find any issues or errors with it, or if you want to add your own thoughts to the process for clarification.
Take care everyone.