Removed bugs / enhanced code

1- Bug fixed: When `loop === false`, the thing loops in callbacks forever even if nothing is printed, now its fixed and exits when done

2- Code enhancement / bug fix:
Seems that the "inline-delay" functionality was loosely implemented, so if you type "Hello ^World" the word "World" would disappear, also there was no type checking for the digits what so ever, and there was no way to print the '^' char. And the boundary had to be a space .. so basically "Hello ^1000World" will not cause anything but the deletion of "^1000World" 

Now its fixed, print ^ using ^^, no need for space boundry " ", if no digits are found after the '^' and no '^^', the '^' char is totally ignored

3- Changed id='typed-cursor' to class='typed-cursor' to allow for multiple "typed" entities. (id was so restrictive)

4- Added "preStringTyped" function which gets called before a string is printed, takes the self.arrayPos as an argument

5- Modified "onStringTyped" to take self.arrayPos as an argument too

6- Add a "start" and "stop" functions

6- Simplified conditions for looping, also removed the very ambiguous this.stopArray which is conditionally set at initialization, used self.strings.length for more clear code. Also removed this.string which always points to first string

7- "callback" now gets called after all strings are displayed, even if it is in loop (not sure though if that was the intended functionality, but it makes more sense to me now than before). functionality can be restored by adding if(self.loop === false) before it gets called.

8- Suggestions: rename "preStringTyped" to "before" and "onStringTyped" to "after"

Hope you consider any (hopefully all) of these, make changes to them / improve over
start from self.arrayPos .... so that "start()" goes on from last point reached