ez-ipupdate: Add Namecheap dynamic DNS support

This does not include any web interface changes.

Namecheap login works a little differently than other dynamic DNS
services. Namecheap only requires the subdomain, domain and a
randomly generated password. These are roughly equivelent to other
services host, username and password, respectively.

Examples:
Update 'www.example.com'
ez-ipupdate -S namecheap -h www -u example.com:e747d77054a844409c486973cb
Update 'example.com'
ez-ipupdate -S namecheap -h @ -u example.com:e747d77054a844409c486973cb

It is unclear if Namecheap supports updating wildcard addresses with
this method, at this time. Support for wildcards will be added if they
are supported by Namecheap.
Web interface: Add Namecheap dynamic DNS support

The subdomain (or @ for the root domain) goes in the Host Name field.
The domain goes in User Name/Email Address field.
The passkey provided by Namecheap goes in the Password/DDNS Key field.

Wildcard is currently unavailable.
build: updates/cleanups copied from GPL
Missed in a recent GPL merge
Missed in the 374_339 merge
httpd: Encode crt/keys imported from an uploaded ovpn
ovpn/httpd: Implementing parsing of redirect-gateway ovpn config keyword
copy/paste error - renamed var
httpd/ovpn: Only automatically process redirect-gateway if no option or def1 option is specified
httpd: Use streq() like the rest of that code
webui: Properly handle cases where an imported OVPN Client interface results in vpn_client_if being 'tun3' instead of 'tun'
webui: Also fix webui element visibility according to interface type
webui: Don't accept clicks on Upload if no file was specified
webui: Fix OpenVPN key/crt getting garbled by the client page
Merge pull request #439 from saintdev/for-upstream

Namecheap dynamic DNS support.
Merge branch 'master' of https://github.com/Lightsword1942/asuswrt-merlin into downstream