updated the gitignore file
Created custom OptionalAttribute because the one in the framework causes issues with MVC(5?) as it flags them as "Missing" and it doesn't notice that they are nullable.

Changed the check for optional on parameters to look if the item is nullable, if it is nullable, then it will default to optional.