Fix enumeration order of rules in the check() method

Adding support for the placeholder attribute on text input elements for
browsers that do not support the attribute. In these cases treat the
value of the text field as empty if the value equals the placeholder

Update the handle() function that invokes the submitHandler so that it
returns the result of the submitHandler. This allows the submit event to
continue to propagate (which is required for jquery.unobtrusive-ajax to
function correctly)

The implementation of the 'remote' validation rule makes an async ajax
request to a remote server and does not execute any other rules after
that. As such any rules that end up after the remote rule will not be
checked (i.e. 'password' and custom rules). This tweak makes sure the
'remote' validation rule executes last and thereby all other validation
rules will execute. Also, in order to ensure the rules() method return a 
consistent order I updated it to return an array instead of an object.