Do not use GHashTable to store node attributes

Using a simple list speeds up parsing by ~15%.
Add as_node_take_attribute() to reduce allocations during parse

This speeds up parsing by a couple of ms, but reduces the memory footprint by a
few kb.
Reduce the number of small attr key allocations

Use a intern'ed string for keys as there are very few different ones.
trivial: Use a getter and setter for setting the node data name
Use gperf to generate a perfect hash for the tag names

This speeds up parsing by ~3%
trivial: Fix build for the non-gperf case
Add an error quark for AsStore

Using AsNodeError here isn't quite right...
Add as_store_load() to load system and user locations

Most of this code has been ported from gnome-software and is used to load system
and user app-info locations. It will also soon be used for loading
Ubuntu-specific app-install files and perhaps also Debian-style YAML files.
Use the full ID for the AsStore hash

We need this to avoid conflicts with components IDs of different types.
trivial: Always return the correct error domain from AsStore
trivial: Explicitly choose which files are scanned by g-ir-scanner

This gets rid of several warnings when generating the GIR file.
trivial: Do not use AsNodeError in AsApp
Load the Ubuntu app-install data
Use screenshots.debian.net for app-install content

We don't have any other screenshots available, so this is as good as it gets.
Add as_tag_from_string_full()
Add as_node_get_tag() and only store the name when the tag is unknown

This has a drawback that we have to convert from string->enum quite a lot, but
it turns out that the enum direct integer compare (compared to a strcmp) more
than makes up for this. It also reduces the amount of small malloc()s when
parsing metadata

This speeds up parsing by ~7% and reduces the amount of memory required by ~5%.

NOTE: the AsNodeData struct was re-ordered so it packs again into 32 bytes.
Release version 0.1.2
trivial: post release version bump
Ignore settings panels when parsing desktop files

We never want to represent a settings panel with an AsApp.
Add as_utils_is_stock_icon_name()

This means we add 8k to the library size as we use an embedded GResource.