How to integrate plugin in WordPress theme

That depends on what the plugin does, whether your theme relies on it and whether it is your own plugin or not.

For example, when it’s a plugin that adds a custom post type with special theme pages and stuff (like events or a portfolio), than you should integrate it in your theme using your second method.

On the other hand, when it’s a plugin from an external developer (like a slider or something), then you should let the user install that plugin in the /wp-content/plugins folder (or copy it to the plugins folder). A nice help here is the TGM Plugin Activation, which is used by many themes these days. It recommends plugins your theme depends on and can even install and activate them automaticly. It can install them from the WP repository or from a folder when you include a .zip file in your theme somewhere (like in case of a premium plugin).