If you dont plan to use the store to deploy your app you could simply go with a modified built-in webpart that you can export and import in the desired webpartcatalogs. These wont show up in the SiteContents.
We are mostly using the Microsoft.SharePoint.WebPartPages.XmlWebPart
since it has a property where we can save persistent settings for our webpart.
You should not add script tags to the html referenced in the webpart since it destroys mds. We are using UserCustomActions to add the JavaScript to the pages. The JavaScript searches the page for instances of out webpart and does the magic. Here's a example:
<?xml version="1.0" encoding="utf-8"?>
<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
<Title>Your WebPart Title</Title>
<FrameType>None</FrameType>
<Description>Your WebPart Description</Description>
<IsIncluded>true</IsIncluded>
<ZoneID>wpz</ZoneID>
<PartOrder>1</PartOrder>
<FrameState>Normal</FrameState>
<Height />
<Width />
<AllowRemove>true</AllowRemove>
<AllowZoneChange>true</AllowZoneChange>
<AllowMinimize>true</AllowMinimize>
<AllowConnect>true</AllowConnect>
<AllowEdit>true</AllowEdit>
<AllowHide>true</AllowHide>
<IsVisible>true</IsVisible>
<DetailLink />
<HelpLink />
<HelpMode>Modeless</HelpMode>
<Dir>Default</Dir>
<PartImageSmall />
<MissingAssembly>Cannot import this Web Part.</MissingAssembly>
<PartImageLarge>/_layouts/15/images/msxmll.gif</PartImageLarge>
<IsIncludedFilter />
<Assembly>Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
<XMLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
<XML xmlns="http://schemas.microsoft.com/WebPart/v2/Xml"><![CDATA[<div class="SOME_CLASS_SO_YOU_CAN_FIND_THIS_VIA_JAVASCRIPT"></div>]]></XML>
<XSLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
<XSL xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/Xml">{"exampleSetting" : "here you can save your settings"}</PartStorage>
</WebPart>
Simply save this with a .dwp
extenstion and add it to your webpartcatalog. As i described the intelligence should be placed in a usercustomaction.