Quickly validate method inputs to avoid errors when pulling back from the stack
Unit tests for invalid input into push and unshift
Throw Invalid Argument Exception when no args passed through to push and unshift
Unit tests for new exceptions within push and unshift
Inverted control, and strict check on func_num_args
Removed un-required else
Merge remote-tracking branch 'bajbnet/master'

* bajbnet/master:
  Removed un-required else
  Inverted control, and strict check on func_num_args
  Unit tests for new exceptions within push and unshift
  Throw Invalid Argument Exception when no args passed through to push and unshift
  Unit tests for invalid input into push and unshift
  Quickly validate method inputs to avoid errors when pulling back from the stack
Amend merge