It is possible to transfer your website, database, mail and files to another web host using a cPanel server. In WHM, there is 'copy an account from another server' function which enables the transfer- you will have to provide the hosting company with your website account password for this.
To point your domain to a nameserver, you will have to access your domain info at your domain registrar. Their domain management interface should permit you to select custom nameservers.
You must upload the theme's directory to public_html/wp_content/themes/.
If you had a theme called Explorers and the theme was downloaded into a directory called Explorers , upload the Explorers directory to public_html/wp_content/themes/, thus creating public_html/wp_content/themes/Explorers /.