#41 Major bug fixes

* Change multidimensional ArrayList to single ArrayList.
* Remove unused methods.
* Add javadoc.
* Change getHexLine to get more dynamically data output. Return x bytes
from where you want, not from a specific line.
* Add exceptions to handle errors.
* Remove checkBytesOnLine. Cannot check lines in hex file after it is
saved into an array, but all lines are verified in constructor.
* Return only data bytes when requesting data bytes. Data size byte and
address bytes needs to be generated before using data bytes. This makes
it more dynamically.
#42 Change uploadFile

* Combine readWrittenBytes and uploadFile.
* Not restricting the bytes to be read/written to be 2^x bytes. Accept
all even even numbers.
* JavaDoc
* Add hardwareReset() #36