Added a convenience method to pull back a reliable set of useful columns per machine.

It's a lot of LEFT JOINS, but it's way faster than getting a list of machines, then performing count(machines) * 4 queries to get the rest of the info we need in so many places in the app.
So much json/ajax/dataTables goodness.

- DataTables
	mainlayout.js is new and is included on every page load. It's akin to the helpers/site_helper.php file, but for the client-side. Among other things, it includes an override for DataTables where we can control the default options for any new dataTable instance that's created in the app. These are new _default_ options, not immutable default options.

- Performance boosts
	Aside from taking advantage of the new spiffy query in the Machine model, the inventory/index and inventory/bundles pages are now _both_ loading their content via dataTable's ajax calls. That combined with the default option in dataTables to defer rendering rows until they are needed makes loading these two pages extremely fast.

	The inventory/index page has a bunch of hidden columns that are searchable. Things like, platform_UUID, machine_model, machine_desc, and SMV_version_system for example. I'll have to work on something to allow admins to hide/show these extra columns when they want, but that's kind of taking a backseat to everything else right now.

	Oh my gawd, the IP and Last Inventory (date) columns in inventory/index sort properly - I'm lovin' dataTables more and more.