Modified reset state, reset o_start signal

Reset was skipping the start state and jumping directly to the busy
state when i_valid was 1. This skipped starting the counter and
modifying  output signals.

Added  o_start as a signal to be reset during reset state.
Changed DIRECTION output to match requirements

Project requirements are to have the direction output be '000' when
there is no edge. Even though this is the same as East...
Generic image size, fixed pixel input and edge write

Modified the program to take an image with size defined by variables
rather than hard coded.

Modified timing for pixel input so that the state machine will catch the
change on the next clock cycle, which we were missing before.

Modified the edge detected function, should detect when edge is high,
not just on o_valid.

Added some comments
Reformatted File

Heavily reformatted file to make it easier to read.